我正在使用自定义的表。这是简单的用户角色功能。但不使用传统的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