我希望为特定商家获取所有商家用户。这是我的设置;
merchant
- id
merchant_user_permission
- merchant_id (equal to merchant.id)
- user_id (equal to merchant_user.id)
merchant_user
- id
在我的代码中,我尝试过:
class Merchant extends Model
{
public function merchant_users()
{
return $this->hasManyThrough(MerchantUser::class, MerchantUserPermission::class, 'user_id');
}
}
但是生成的sql无效。
string(374)" SQLSTATE [42S22]:找不到列:1054未知列' merchant_user.merchant_user_permission_id'在' on条款' (SQL:选择count(*)作为
merchant_user
上merchant_user_permission
内部联接merchant_user_permission
的汇总。id
=merchant_user
。merchant_user_permission_id
其中{{ 1}}。merchant_user_permission
= 123-3456-7789-qwerty)"
这是一个有效的SQL示例:
user_id
如何使用Eloquent 5.4复制它?
答案 0 :(得分:3)
试试这个
建立多对多关系
class Merchant extends Model
{
public function merchant_users()
{
return $this->belongsToMany('App\ MerchantUser', 'merchant_user_permission', 'merchant_id', 'merchant_user_id');
}
}
然后
$permissions = App\Merchant::find($merchant_id)->merchant_users()->get();