【发布时间】:2017-10-29 21:53:27
【问题描述】:
我有两个模型根据以下关系连接。一个客户可以有很多项目,而一个项目只能有一个客户。假设我的以下模型实现了上述关系。
字段定义
项目
id、description、customer(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->customer->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->customer->id 的原因?
【问题讨论】:
-
你能告诉我你的
dd($projects)回复吗? -
试试 $project->customer()->id.
-
@Mr.Pyramid 谢谢你的提示。我刚收到一个 dd 响应,我发现我应该使用
$project->Customer->id。我使用了customer而不是Customer。 (Y) -
编码愉快!
标签: one-to-many laravel-blade laravel-5.5