【问题标题】:Laravel Blade how to fetch parent relation dataLaravel Blade 如何获取父关系数据
【发布时间】:2017-10-29 21:53:27
【问题描述】:

我有两个模型根据以下关系连接。一个客户可以有很多项目,而一个项目只能有一个客户。假设我的以下模型实现了上述关系。

字段定义

项目

iddescriptioncustomer(customer 是引用 Project.id 的外键)

客户

id, description


项目模型:

public function customer()
{
  return $this->belongsTo('App\Models\Customer', 'customer', 'id');
}

客户模型:

public function projects()
{
  return $this->hasMany('App\Models\Project');
}

项目控制器:

public function index()
{
  return view('project.index', ['projects' => Project::with('customer')->paginate(10)]);
}

刀片视图:

@foreach ($projects as $project)
<tr>
  <td><a href="/projects/{{$project->id}}/edit">{{$project->id}}</a></td>
  <td>{{$project->description}}</td>
  <td>{{$project}}</td>
  <td>{{$project->customer->id}}</td>
</tr>
@endforeach

但是$project-&gt;customer-&gt;id 给出了Trying to get property of non-object... 错误。

如果我在 foreach 循环中打印其中一个项目,我会得到以下数据集。

{
  "id":1,
  "description":"te",
  "state":"Preliminary",
  "customer":{"id":1,"description":"Test Customer","created_at":"2017-10-19 23:29:27","updated_at":"2017-10-19 23:29:27"},
  "created_at":"2017-10-25 19:06:50",
  "updated_at":"2017-10-25 19:06:50"
}

谁能帮我找出我不能将 Customer.id 称为$project-&gt;customer-&gt;id 的原因?

【问题讨论】:

  • 你能告诉我你的dd($projects)回复吗?
  • 试试 $project->customer()->id.
  • @Mr.Pyramid 谢谢你的提示。我刚收到一个 dd 响应,我发现我应该使用 $project-&gt;Customer-&gt;id。我使用了customer 而不是Customer。 (Y)
  • 编码愉快!

标签: one-to-many laravel-blade laravel-5.5


【解决方案1】:

应该使用$project-&gt;Customer-&gt;id。请注意,它应该是 Ccustomer 而不是 customer

【讨论】:

    猜你喜欢
    • 2018-11-15
    • 2022-01-26
    • 1970-01-01
    • 2020-11-27
    • 2021-08-03
    • 1970-01-01
    • 2021-09-09
    • 2021-05-06
    • 1970-01-01
    相关资源
    最近更新 更多