如何根据使用 Laravel 连接的用户过滤记录?

Posted

技术标签:

【中文标题】如何根据使用 Laravel 连接的用户过滤记录?【英文标题】:How to filter a record depending of the user connected using Laravel? 【发布时间】:2020-06-22 09:53:04 【问题描述】:

我有下一张桌子..

IDOP 列是我在我的应用程序中用于连接而不是电子邮件的键...我希望能够过滤每个用户的 IDOP...所以用户应该只能看到行与 对应的IDOP,如何只过滤他的IDOP?

这是我的数据表的功能

$('#user_contactabilidadasesor').DataTable(
processing: true,
"scrollX": true,
//serverSide: true,
ajax: 
url: " route('contactabilidadasesor.index') ",
,
columns: [

data: 'idop',
name: 'l.idop',
className: 'uniqueClassName'
,

data: 'idop_asesor',
name: 'idop_asesor',
searchable: false, render: function ( data, type, row ) 
              if (data == null) return ''; elsereturn (row['idop_asesor'] + ' ' + row['ape_asesor']);
            ,
className: 'uniqueClassName'

],
);

这是我的查询

public function index(Request $request)



    if($request->ajax())
    
        $data = DB::table('tbl_lista_contactabilidad as a')
    ->select('a.id','a.postventaatcs_id')
    ->leftjoin('tbl_equipo_postventaatcs as h','h.id','=','a.postventaatc_id')
    ->leftjoin('users as l','l.id','=','h.asesor_id')
    ->select(array('a.id','l.name as idop_asesor','l.apellido as ape_asesor','l.idop'));

        return DataTables::of($data)
                ->addColumn('action', function($data)
                    $button = '<button type="button" name="edit" id="'.$data->id.'" class="edit btn btn-primary btn-sm">Auditar</button>';
                    //$button .= '&nbsp;&nbsp;&nbsp;<button type="button" name="edit" id="'.$data->id.'" class="delete btn btn-danger btn-sm">Delete</button>';
                    return $button;
                )
                ->rawColumns(['action'])
                ->make(true);

    

    return view('contactabilidadasesor');

【问题讨论】:

添加到您的查询-&gt;where('IDOP', auth()-&gt;user()-&gt;IDOP) 它只显示没有 IDOP 的记录 auth()->user()->IDOP 我将每个 IDOP 保存在表 users 中,但我只想查看每个已连接用户的 IDOP 的行 我做到了......非常感谢你的帮助......它就像你说的那样工作......如果你想发布答案......我会给你打分 【参考方案1】:

对于过滤,您必须使用 ->where('IDOP', auth()->user()->IDOP) (对于单个用户) ->whereIn('IDOP', [过滤 idops 数组])用于多个 IDOP

【讨论】:

以上是关于如何根据使用 Laravel 连接的用户过滤记录?的主要内容,如果未能解决你的问题,请参考以下文章

laravel:如何从数据库端过滤记录

根据子表中的“当前”值过滤 belongsToMany 记录

laravel:如何从数据库端过滤记录

如何根据距离过滤器显示帖子

在 Laravel 中:如何根据 URI 将多个过滤器应用于一整套路由?

Laravel 4 过滤不同角色的组路由