我有'项目'和'客户'之间的关系。这是我的模特..
class Client extends Model
{
public function projects() {
return $this->hasMany('App\Models\Project');
}
}
class Project extends Model
{
public function clients() {
return $this->belongsTo('App\Models\Client');
}
}
在我的'Projects'控制器索引方法中..
$projects = Project::all();
return view('project/projects', compact('projects'));
然后在我的刀片文件中..
@foreach($projects as $project)
<div class="project">
<div class="status pending"></div>
<p>{{ $project->name }}</p>
<span>{{ $project->clients->name }}</span>
</div>
@endforeach
我收到以下错误'试图获取非对象的属性'。 Laravel的新手,请放轻松。
答案 0 :(得分:0)
该代码确实看起来会起作用(或者不会起作用,但出于不同的原因),但我发现有时候你需要做这样的事情,因为你可能期望的工作关系:
$projects = Project::with('clients')->get();
return view('project/projects', compact('projects'));
另请注意,由于clients
是HasMany关系,因此您需要迭代$projects->clients
以获取其中一个的->name
属性。
答案 1 :(得分:0)
在我的项目表的client_id列中,其中一个字段设置为0.因此,当迭代并到达该点时,它失败了,这就是我的错误消息所属。