我正在使用自定義的表。這是簡單的用戶角色功能。但不使用傳統的Eloquent數據庫模式樣式。Laravel 5 belongsToMany()自定義表
表用戶
- 用戶id(PK)
- 用戶名(VARCHAR)
表角色
- 角色ID(PK)
- ROLENAME(VARCHAR)
表的UserRole 樞軸柱
- userroleId
- 角色ID
- 用戶id
現在我模型用戶具有這種方法
public function roles()
{
return $this->belongsToMany("App\Role", "userrole", "roleId", "userId");
}
當我米AKE這樣調用它給出錯誤
$roles = App\User::where("userId", "1")->first()->roles;
dd($roles);
錯誤它顯示的是:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'role.id' in 'on clause' (SQL: select `role`.*, `userrole`.`roleId` as `pivot_roleId`, `userrole`.`userId` as `pivot_userId` from `role` inner join `userrole` on `role`.`id` = `userrole`.`userId` where `userrole`.`roleId` is null)
這是我小小的要求。請不要建議更改表格模式。我不能。我堅持這一點。 謝謝!
這是我的謙卑迴應,請遵守慣例,除非你有一個有意義的名字,比如'email','SSN'等。 – Asim
@Asim不需要這樣的迴應,我希望我們都有能力在每一個我們工作的項目中始終遵循Taylor Otwell的約定,當你必須在Zend Framework v1和Codeigniter中選擇狗屎時,我將理解成爲一名專業的Web開發人員是什麼感覺。 – JonnySerra