使用数据透视表laravel 5.1查询

时间:2016-08-28 18:16:30

标签: php mysql laravel laravel-5.1

使用数据透视表laravel查询

映射

enter image description here

我遇到了透视查询问题。

应用/实体/ user.php的

public function roles()
{
    return $this->belongsToMany('App\Entities\UserRole', 'user_user_roles', 'user_id', 'user_role_id');
}


public function getPivotCondition($roleId)
{
    return $this->roles()->wherePivot('user_role_id','=',$roleId);
}

控制器

    use App/Entities/user; 

    public function getUserWithRole(user $User){

    $users = $User->getPivotCondition(1)->get();

    dd($users);

    }        

导致查询

    SELECT `user_roles`.*, 
       `user_user_roles`.`user_id`      AS `pivot_user_id`, 
       `user_user_roles`.`user_role_id` AS `pivot_user_role_id` 
FROM   `user_roles` 
       INNER JOIN `user_user_roles` 
               ON `user_roles`.`id` = `user_user_roles`.`user_role_id` 
WHERE  `user_user_roles`.`user_id` IS NULL 
       AND `user_user_roles`.`user_role_id` = '1' 

我的问题是,为什么我在查询中 user_user_rolesuser_id为空

我知道我可以使用 WhereHas ,但我正在寻找替代方案。我可以使用 wherePivot('user_role_id','=',$ roleId,'或'); < / strong> else orWherePivot 但会导致查询条件为

0 个答案:

没有答案