我想要感受一下laravel ORM,我有以下模型。laravel一對多得到沒有內部連接的數據
我有一個: 用戶表與 - ID,名字,姓氏 城市表 - ID,名稱爲 usercity表 - USER_ID,city_id
的usercity表跟蹤用戶訪問過的城市。
我加入城市模型如下:
public function usercity()
{
return $this->hasMany('App\UserCity');
}
,並在用戶模型中的另一個功能
public function usercity()
{
return $this->hasMany('App\UserCity');
}
我還增加了UserCity模型,並添加下面的函數存在。
public function city()
{
return $this->belongsTo('App\City');
}
public function user()
{
return $this->belongsTo('App\User');
}
現在,目標是檢索用戶訪問過的所有城市。我使用了以下功能。
$usercities = User::where('id','=',1)->first()->usercity()->get();
這樣做的作用是它檢索user_id和city_id。 我需要做些什麼來獲得城市表中的所有字段? 電流響應:
[[{"user_id":"1","city_id":"1"},{"user_id":"1","city_id":"2"},{"user_id":"1","city_id":"3"},{"user_id":"1","city_id":"4"}]]
我也許可以使用內部連接,但我想看看是否有另一種方式來獲取其安全地填充數據,我的數據。
嗨,我試過你的建議,我看到一個問題。 usercities上的內部連接發生在'id'列而不是'user_id'上。我看到下面的內部連接:選擇'城市'。*,'usercities'。'city_id' from'cities'內部連接'usercities'在'usercities'.'id' ='cities'.'id'其中'usercities'.'city_id' = 1)' – user1647708 2015-02-25 15:37:01
@ user1647708你能展示你的新關係嗎?測試代碼?該查詢對於belongsToMany關係是非常錯誤的。 – patricus 2015-02-25 22:23:08