我一直在尝试使用Eloquent作为我正在制作的应用程序(被Codeigniter阻止),但我无法让它工作。在Laravel的Eloquent ORM中使用查找表:不是唯一的表别名?
我有3个表:
users
departments
department_members
(这是查找表)
department_members
具有3个字段:ID,部门标识和USER_ID。我所有的桌子都有自己的模特。当我尝试使用ORM得到一个用户(User::find(1)->member()->first()
)我得到的部门这个错误:
SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: '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的相应名称。
如果需要更多信息,我会很乐意提供帮助。
正确 - 'department_members'是我的数据透视表,Eloquent使用它生成正确的查询,而实际上并没有声明它(除了第二个参数)。我只需要定义起始表和结束表,而不是中间表。谢谢! – AeroCross 2013-03-12 20:46:41