[英]Laravel set option to selected if option id is in an array list in blade view
[英]How to display on blade view the contents of a selected id? Laravel
我是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),并且得到了正确的结果。 我的问题是如何在刀片视图中显示它。
在控制器中
public function showPackageItems($id)
{
$package = Package::with('packageItems')
->where('id', '=', $id)
->get();
return view('admin.packages.show')->with('package', $package);
}
刀片式
@foreach($package as $p)
<td>{{$p->packageItem->item_id}}</td> //error
<td>{{$p->qty}}</td> //error as well
@endforeach
尝试这个
Controller
public function showPackageItems($id)
{
$package = Package::find($id)
->with('packageItems')
->where('id', $id)
->first();
return view('admin.packages.show', compact('package'));
}
Blade file
{{ $package->id }} //you can access package instance like that.
//for packageItems
@foreach($package->packageItems as $p)
<td>{{ $p->item_id }}</td>
<td>{{ $p->qty }}</td>
@endforeach
更改有关如何检索记录的代码
使用find和get有所不同: Eloquent中find和get的区别
另外,您需要先获取packageitems
public function showPackageItems($id)
{
$package = Package::with('packageitems')
->where('id', '=', $id)
->get();
return view('admin.packages.show')->with('package', $package);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.