問題。如何使用雄辯產生這種查詢:上campaigns.gamemaster_id = users.id其中campaigns.status = 1Laravel:加入雄辯模特
廣告活動
SELECT campaigns.name,users.name FROM活動LEFT JOIN用戶
id gamemaster_id name status
1 1 campaign1 1
2 2 campaign2 1
用戶
id name
1 rick
2 bob
結果
id gamemaster_id name status gamemaster_name
1 1 campaign1 1 rick
2 2 campaign2 1 bob
運動模式
class Campaign extends Model
{
public function gamemaster()
{
return $this->belongsTo('App\User', 'gamemaster_id');
}
}
我嘗試做侃侃而談,但失敗:
$result = Campaign::where('status', '=', 1)->with('gamemaster')->select('name')->orderBy('users.updated_at', 'desc')->get();
謝謝。第一個似乎工作。但是急切的加載提供了這個查詢:「select'id',''''''''''''''status''''''''''也許它缺少一個聯接部分? – Olof84
歡迎,不需要加入,它會選擇屬於狀態爲1的廣告系列的遊戲管理員。因此,有兩個查詢正在運行,首先選擇廣告系列,其次選擇屬於該廣告系列的用戶。它是否返回任何錯誤或顯示意外的結果?我還應該注意到,要訂購具有用戶更新屬性的廣告系列,您需要另一個層,這就是爲什麼聯接方式更容易。 – Burak
當我運行它時,它會這樣說:SQLSTATE [42S22]:列未找到:1054'字段列表'中的未知列'gamemaster_id'(SQL:select'id','gamemaster_id','name','updated_at' (0)中的'sh_users'.'id')。我在我的實際項目中用sh在我的表前加上了前綴。 – Olof84