我想,第一次雄辩的关系,我抓我的头几个小时解决这个问题......我在这里的代码:Laravel关系的hasMany查询似有不妥
游戏机模型
public function messages()
{
return $this->hasMany('Messages', 'ride_id');
}
消息模型
class Messages extends Eloquent {
protected $guarded = ['id'];
public function message(){
return $this->belongsTo('Rides');
}
}
游戏机控制器
public function show($user)
{
$ride = Rides::with('user')->where('id' ,'=',$user->id)->get();
$ridesObj = new Rides();
$messages = $ridesObj->messages()->where('ride_id', '=',$ride[0]->id)->get();
return View::make('site/rides/show')
->with('ride',$ride)
->with('messages',$messages);
}
$ messages集合始终为空,通过查看查询: select * from messages
其中messages
。 ride_id
为空并且ride_id
='5' 问题在于messages
。 ride_id
为空 为什么以及如何创建条件?
在你的'$ ridesObj-> messages() - > where('ride_id','=',$ ride [0] - > id)...''where()'语句是多余的。 '$ ride-> message'已经隐含地限制了返回给与Ride相关的消息的消息。 我建议查看Eloquent文档并尝试使用php工匠修补程序 – ErikTheDeveloper