dqu92800 2016-08-28 18:16
浏览 26

使用数据透视表laravel 5.1查询

Query with pivot table laravel

Mappings

enter image description here

I am having a trouble with pivot query.

App/Entities/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);
}

Controller

    use App/Entities/user; 

    public function getUserWithRole(user $User){

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

    dd($users);

    }        

It results in a query

    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' 

my question is that why i am getting user_user_roles.user_id is null in my query

I know that i can use WhereHas but i am looking for an alternative.I can use wherePivot('user_role_id','=',$roleId,'or'); else orWherePivot but it will result in query condition to or.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 set_link_state
    • ¥15 虚幻5 UE美术毛发渲染
    • ¥15 CVRP 图论 物流运输优化
    • ¥15 Tableau online 嵌入ppt失败
    • ¥100 支付宝网页转账系统不识别账号
    • ¥15 基于单片机的靶位控制系统
    • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
    • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
    • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
    • ¥15 手机接入宽带网线,如何释放宽带全部速度