我一直在尝试将 Eloquent 用于我正在制作的应用程序(受到 Codeigniter 的保护),但我无法让它工作。
我有 3 张桌子:
users
departments
department_members
(这是查找表)
department_members
有 3 个字段:id、department_id 和 user_id。我所有的桌子都有自己的模型。当我尝试使用 ORM 获取用户的部门(User::find(1)->member()->first()
)时,我得到的只是这个错误:
SQLSTATE [42000]:语法错误或访问冲突:1066 不是唯一的表/别名:'users'
虽然我知道问题是什么,但我不知道如何解决它,因为它都是由 ORM 生成的。
型号:
会员型号
class Member extends Eloquent { public static $table = 'department_members'; public static $timestamps = false; public function user() { return $this->has_many_and_belongs_to('User', 'users'); } }
用户模型
class User extends Eloquent { public static $timestamps = false; public function member() { return $this->has_many_and_belongs_to('Member', 'department_members'); } }
部门型号
class Department extends Eloquent { public function member() { return $this->has_many_and_belongs_to('Member', 'department_members'); } }
这些列具有适当的名称: id 作为 PK,以及附加了 _id 的相应名称。
如果需要更多信息,我很乐意提供帮助。