首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用数组laravel上的成员函数()

调用数组laravel上的成员函数()
EN

Stack Overflow用户
提问于 2018-01-19 06:41:27
回答 2查看 2.7K关注 0票数 1

我在这两个表上都有两个表tbl_law_master & tbl_law_sub_master,有一个名为assigned_to的列,该列存储用户的id。

我的任务是通过加入的law_id,从tbl_law_sub_master获取特定用户的id

这是我的密码

代码语言:javascript
复制
$law_id = $_GET['law_id'];

$sublaw = DB::table('tbl_law_sub_master')
            ->select('tbl_law_sub_master.*', 'tbl_law_master.lm_id', 'tbl_law_master.law_name', 'tbl_law_master.id as lawId')
            ->leftJoin('tbl_law_master', 'tbl_law_master.id', '=', 'tbl_law_sub_master.lm_id')
            ->where('tbl_law_sub_master.lm_id', $law_id)
            ->orderBy('type_of_event', 'asc')
            ->orderBy('section', 'asc')
            ->orderBy('rules', 'asc')
            ->orderBy('notification', 'asc')
            ->orderBy('circular', 'asc')->get();

if (!in_array(Auth::user()->role, [1, 7])) 
{
   $sublaw = $sublaw->where('tbl_law_master.assigned_to', Auth::user()->id);
}

它向我展示了错误

调用数组上的成员函数,其中()

EN

回答 2

Stack Overflow用户

发布于 2018-01-19 07:46:07

问题是您已经调用了查询的get(),然后再次调用了where()

您应该使用where子句,如下所示

代码语言:javascript
复制
$sublaw = DB::table('tbl_law_sub_master')
        ->select('tbl_law_sub_master.*', 'tbl_law_master.lm_id', 'tbl_law_master.law_name', 'tbl_law_master.id as lawId')
        ->leftJoin('tbl_law_master', 'tbl_law_master.id', '=', 'tbl_law_sub_master.lm_id')
        ->where(function($query) use ($law_id) {
            $query->where('tbl_law_sub_master.lm_id', $law_id);
            if (!in_array(Auth::user()->role, [1, 7])) 
            {
                $query->where('tbl_law_master.assigned_to', Auth::user()->id);
            }
        })
        ->orderBy('type_of_event', 'asc')
        ->orderBy('section', 'asc')
        ->orderBy('rules', 'asc')
        ->orderBy('notification', 'asc')
        ->orderBy('circular', 'asc')->get();
票数 2
EN

Stack Overflow用户

发布于 2018-01-19 07:37:21

我认为您应该在上一次where语句之后调用get

代码语言:javascript
复制
$sublaw = DB::table('tbl_law_sub_master')
        ->select('tbl_law_sub_master.*', 'tbl_law_master.lm_id', 'tbl_law_master.law_name', 'tbl_law_master.id as lawId')
        ->leftJoin('tbl_law_master', 'tbl_law_master.id', '=', 'tbl_law_sub_master.lm_id')
        ->where('tbl_law_sub_master.lm_id', $law_id)
        ->orderBy('type_of_event', 'asc')
        ->orderBy('section', 'asc')
        ->orderBy('rules', 'asc')
        ->orderBy('notification', 'asc')
        ->orderBy('circular', 'asc');

if (!in_array(Auth::user()->role, [1, 7])) 
{
  $sublaw = $sublaw->where('tbl_law_master.assigned_to', Auth::user()->id)->get();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48335477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档