控制器功能(即应该返回2分的结果,与他们的位置和消息计数):Laravel的hasMany关系不访问关系
public function getIndex()
{
$alerts = User::with('alerts.location')
->where('id', '=', Auth::user()->id)->get();
$this->layout->content = View::make('agents.index',
array('alerts' => $alerts));
}
用户模型:
public function alerts()
{
return $this->hasMany('Alert');
}
警报模型:
public function location()
{
return $this->belongsTo('Location');
}
public function user()
{
return $this->belongsTo('User');
}
public function messages()
{
return $this->hasMany('Message');
}
浏览:
@foreach($alerts as $alert)
<tr>
<td>{{ $alert->location->address_1}}</td>
<td>{{ $alert->location->address_2}}</td>
<td>{{ $alert->location->address_3}}</td>
<td>{{ $alert->location->postcode}}</td>
<td>{{ $alert->messages->count()}}</td>
</tr>
@endforeach
它试图访问location
或messages
失败的任何回音 -
ErrorException试图让非对象
的财产,我从一个改变了查询 - > first()方法,到一个 - > get()方法,这是问题开始的地方。每条警报都有多条消息和1个与之相关的位置。