我目前有 4 个表,包括:
- 用户
- 供应商
- 项目
- 项目_投标
我正在尝试在项目表上查询 Laravel 的 Eloquent 模型,因此当给定用户访问类似于以下内容的链接时:example.com/project/{projectid}
该 View 使用 foreach 循环遍历与该项目 ID 相关的所有项目投标。
我遇到了能够显示/循环遍历所有出价并让它们正确呈现的问题,我尝试使用以下方法:
$projectBids = ProjectBids::where('project_id', '=', $projectid)
->get();
我已经从这两种关系中尝试过:
public function project_bids(){
return $this->hasMany(ProjectBids::class, 'project_id');
}
public function project_bids(){
return $this->belongsTo(ProjectBids::class, 'project_id');
}
但是,当我尝试遍历返回的数据库数据时,除非我手动使用以下内容,否则我无法显示相关出价:
返回 $project->project_bids[0]->bid_price;
并指定 [0] 行或 [1] 等等...
当然必须有一种更简单的方法来做到这一点,作为一个新手,在看了几天的教程和视频之后,我已经失去了自己的功能,我想做的就是引用 project_bids 表来检索project_id 与给定 ID 匹配的所有出价然后在 View 中循环遍历它们。
我希望能够显示与 project_id 相关的出价并能够使用如下方法:
$project->projectbids->bid_price
非常感谢任何帮助,我知道这个问题不是问得最多的问题,这主要是因为花了 36 个小时或更长时间试图解决它,所以我对我试图遵循的教程数量感到困惑.
最佳答案
如果你有很多项目相关的记录,很明显你不能做这样的事情:
$project->projectbids->bid_price
因为这里的projectbids
不是单个元素而是元素的集合。
要获取所有出价,需要使用循环:
@foreach ($project->projectbids as $bid)
{{ $bid->bid_price }}
@endofreach
关于mysql - Laravel 5.2 Eloquent 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35459904/