我想,第一次雄辯的關係,我抓我的頭幾個小時解決這個問題......我在這裏的代碼: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