我有3個表:hotels, hotels_data, hotels_types
Laravel渴望人際關係空查詢
表hotels
有id, type, stars
等.. type
字段設置爲外鍵hotels_types
引用type_id
。我正在設法從hotels_data
獲得正確的數據,但在獲得hotels_types
標題時有空的結果,我不明白爲什麼。
的代碼如下:
class Hotel extends Eloquent {
public function getList() {
$data = Hotel::select('id','stars')->with('HotelData', 'HotelType')->paginate(10);
return View::make('hotels.index')->with('hotels', $data);
}
public function HotelData()
{
return $this->hasOne('HotelsData')->select('id','hotel_id','title');
}
public function HotelType()
{
return $this->hasOne('HotelType','type_id', 'type')->select('id','type_id','title');
}
}
謝謝您的貢獻。在發佈之前,我也嘗試過這樣做,但結果仍然爲空。我設法使用leftJoin()助手並指定tables.columns而不是上述方法來找到解決方案。它不工作(可能)與hasOne和belongsTo因爲沒有id列與types.table直接相關的hotel.id – Kyobul
@Kyobul它也值得注意的是,你的關係方法應該是camelcase(HotelType()應該是hotelType( )和HotelData()應該是hotelData())。否則,調用$ hotel-> hotel_type將返回null – TonyArra
謝謝Tony,注意到它 – Kyobul