繁体   English   中英

如何在刀片视图上显示所选ID的内容? Laravel

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM