控制器方法:
public function panorama($id)
{
$order = ClientOrder::find($id);
$products = ClientProduct::where('client_order_id', $order->id)->with('product')->get();
$conteo = count($products);
return view('add.preview.work_panorama', compact('order', 'products', 'conteo'));
}
模型中的关系:
public function product()
{
return $this->hasOne('App'Product', 'id', 'product_id');
}
叶片视图:
@foreach($products as $product)
<ul class="list-unstyled">
{{ $product->product->name }}
@foreach($product->processes as $process)
<li>-{{ $process->name }}</li>
@endforeach
</ul>
@endforeach
在视图中,$process->name可以工作,但$product->product->name打印一个空白,但在控制器中打印产品名称。
这是因为with从数据库返回一个集合对象。试着像这样使用索引。
{{ $product->product[0]->name }}
我在compact中遇到了同样的问题,当我用下面的代码更改它时,它工作了。
return 'View::make('add.preview.work_panorama')->with('order', $order)
->with('products', $products)
->with('conteo', $conteo);