我有如下表關係:Laravel 5.3 hasManyThrough通過中間表
organizations
id - integer
organization_users
organization_id - integer (FK)
user_id - integer (FK)
users
id - integer
我試圖通過雄辯的關係得到一個組織的所有用戶。這是我的Organization.php模型的關係:
class Organization extends Model
{
public function Users(){
return $this->hasManyThrough('App\User', 'App\OrganizationUser',
'organization_id', 'user_id', 'id');
...
}
我已經試過這種關係如
return $this->hasManyThrough('App\User', 'App\OrganizationUser',
'user_id', 'organization_id', 'id');
的多種組合,但都轉起來有些相同的錯誤(這個人是從第一查詢):
Illuminate\Database\QueryException with message 'SQLSTATE[42S22]: Column not
found: 1054 Unknown column 'organization_users.id' in 'on clause' (SQL: select
`users`.*, `organization_users`.`organization_id` from `users` inner join
`organization_users` on `organization_users`.`id` = `users`.`user_id` where
`organization_users`.`organization_id` = 1)'
是否有可能,我可以有關係檢索USER_ID對用戶表而不是Laravel試圖檢索organization_users.id查詢?如果不是,還有其他解決方法嗎?
您的場景是多對多的關係。 'hasManyThrough'用於訪問距離關係,比如在「組織有很多用戶,並且用戶有很多帖子的情況下,所以你可以組織'hasManyThrough'帖子來間接從用戶訪問組織的帖子。」 –