Php 在Laravel中的foreach循环外部获取变量

Php 在Laravel中的foreach循环外部获取变量,php,laravel,laravel-5,foreach,Php,Laravel,Laravel 5,Foreach,我有一个查询,它在我的blade视图上显示foreach循环中两个表的信息。这是控制器 public function details( $id ){ $details = Item::find($id)->report; return view('details', compact('details')); } 依我看,我有 @foreach($details as $itemDetails) .... @endforeach 是否可以在此查询中的每个

我有一个查询,它在我的blade视图上显示foreach循环中两个表的信息。这是控制器

public function details( $id ){

    $details = Item::find($id)->report;

    return view('details', compact('details'));
} 
依我看,我有

@foreach($details as $itemDetails)
    ....
@endforeach 
是否可以在此查询中的每个变量之前显示

{{ $details->id }}

@foreach($details as $itemDetails)
    ....
@endforeach 
我想获取$id。

是的,您可以尝试以下方法:

$details[0]->id;
尝试理解这个概念,每次使用模型获取数据时,它都会返回一个对象数组,如:

array(
    0 => stdClass Object,
    1 => stdClass Object,
    and so on
)
因此,为了访问数据,我们使用foreach()循环,或者您可以像上面那样直接调用索引


但如果您直接调用index,则使用isset()检查其存在性

要获得
id
外部循环,因为如果我想从foreach循环中获得它,我需要将foreach放在一个div之外,然后由于循环而呈现多个div…您可以共享$details样本的结构吗?请显示
{dd($details)}
如果您只需要第一个元素的id,那么您可以尝试类似于
collect($details)->first()->id的方法
谢谢您的帮助。下面的答案是有效的。我只是想学习Laravel,有些东西还不太清楚。它总是建议不要使用硬编码索引,因为如果索引不存在,可能会中断available@CerlinBoss在你的情况下,在上面的评论中是不是相同或我错了?是的,强烈建议,我在更新的回答中提到了这一点。如果
$details
没有记录,则会显示错误。尝试使用该索引检查数组是否存在,然后访问,尝试使用
empty()
isset()
函数进行检查。@VLS:在访问属性
id
时,是的,但方法
first()
不会抛出错误,相反,如果找不到项,它将返回false。所以一个简单的if条件会更好