我有一个用户模型
class User
{
protected $primaryKey = 'user_id';
public function blocks()
{
return $this->belongsToMany(Block::class, 'block_user', 'blocker_id', 'blocked_id')->withTimestamps();
}
}
还有一个积木模型
class Block extends Model
{
protected $table = "block_user";
}
所以我有两个表:一个用于用户信息,另一个用于当一个用户阻塞另一个数据透视表时(枢轴表),因此users表中的user_id
既是本地的又是外部的。
问题是,如果我想获取某个用户是否阻止了另一个用户,则会返回错误消息:Syntax error or access violation: 1066 Not unique table/alias: 'block_user'
$user = User::where('user_id', 1)->first();
dd($user->blocks->first_name);
我该如何解决?谢谢
答案 0 :(得分:0)
您将用户模型与用户模型而不是模块模型相关联。数据透视表的模型不是必需的,通常永远不会使用。
public function blocks()
{
return $this->belongsToMany(User::class, 'block_user', 'blocker_id', 'blocked_id')->withTimestamps();
}
因此,与其关联到Block::class
中的User::class
。