mysql - Laravel 5.2 Eloquent 关系

标签 mysql laravel foreach foreign-keys laravel-5

我目前有 4 个表,包括:

  1. 用户
  2. 供应商
  3. 项目
  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/

相关文章:

c# - 为什么在使用 foreach 时不执行此 LINQ 查询?

mysql - Rails 高级搜索查询

mysql - 如何在 MySQL 中获取最新创建的表?

mysqldump cron 不能使用字符 >

laravel - 通过模块的 Composer 安装包时无法识别错误类名

javascript - 使用 forEach() 循环数组最大数

mysql - 从数据库中的多行中删除前 17 个字符

laravel - "https://packagist.org/packages.json"文件无法下载: failed to open stream: Operation timed out

php - Laravel 5.2 - 注册后禁用自动登录

excel - 每个循环的 VBA Excel