我有one to many
关系,需要显示使用位置条件。
当我使用findOrFail()
时,它也可以工作。
$foo = Model::findOrFail(1);
在我的模板边栏选项卡上
@foreach($foo->bars as $index=>$bar)
{{ $bar->name }}
@endforeach
在我上面的代码上,它正在工作。 但是对id
的引用,这不是我需要的。
我需要它使用条件。 像这样:
$foo = Model::where('conditon', 1)->get();
然后我在我的刀片模板上调用它
@foreach($foo->bars as $index=>$bar)
{{ $bar->name }}
@endforeach
然后我得到一个错误:
错误异常 (E_ERROR( 属性 [bars] 在此集合实例上不存在。
似乎在get()
之后我不能用$foo->bars
打电话给child
你如何让它工作?
findOrFail(( 方法返回 "Model" 的实例。 get(( 方法返回"模型"实例的集合,即使只有一个结果。
如果你只想要一个结果,请使用 first(( 而不是 get((。
$foo = Model::where('conditon', 1)->first();
然后在边栏选项卡模板中执行
@if($foo)
@foreach($foo->bars as $index=>$bar)
{{ $bar->name }}
@endforeach
@endif
如果您需要多个结果,请执行另一个 foreach((。
@foreach($foo as $oneFoo)
@foreach($oneFoo->bars as $index=>$bar)
{{ $bar->name }}
@endforeach
@endforeach
如果你要使用"多个"解决方案,我建议你将你的变量命名为"foos"。
$foos = Model::where('conditon', 1)->get();
等等
@foreach($foos as $foo)
@foreach($foo->bars as $index=>$bar)
{{ $bar->name }}
@endforeach
@endforeach
尝试使用->first()
而不是->get()
。
因为->get()
检索符合查询条件的多个结果。
可以循环遍历$foo
结果,也可以使用->first()
检索第一个查询匹配项。