【发布时间】:2019-03-20 13:02:44
【问题描述】:
我是 laravel 的新手,我很难显示我在刀片视图中选择的包中的项目。我可以在一个刀片视图中显示所有包。如果我在刀片视图上单击它,目标是让我查看包的内容。
PackageItems 表
id | package_id | item_id | qty
package_id 是来自packages 表的外键,item_id 来自items 表
这是我获取数据的方式:
控制器
public function showPackageItems($id)
{
$package = Package::find($id)
->with('packageitems')
->where('id', '=', $id)
->get();
return view('admin.packages.show')->with('package', $package);
}
封装模型
public function packageItems()
{
return $this->hasMany(PackageItem::class, 'package_id') ;
}
PackageItem 模型
public function package()
{
return $this->belongsTo(Package::class,'package_id') ;
}
showItems 刀片视图
@foreach($package as p)
<td>{{$p->packageItem->item_id}}</td> //error
<td>{{$p->qty}}</td> //error as well
@endforeach
我已经尝试过 dd($package) 并且得到了正确的结果。我的问题是如何在刀片视图上显示它。
【问题讨论】:
-
PackageItems是一个集合,因此您不能像这样直接访问$p->packageItem。检查我的帖子 -
@bhavinjr 谢谢你的解释。您的代码完美运行,我接受了它作为答案。