如何根据使用 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 .= ' <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');
【问题讨论】:
添加到您的查询->where('IDOP', auth()->user()->IDOP)
它只显示没有 IDOP 的记录
auth()->user()->IDOP
我将每个 IDOP 保存在表 users 中,但我只想查看每个已连接用户的 IDOP 的行
我做到了......非常感谢你的帮助......它就像你说的那样工作......如果你想发布答案......我会给你打分
【参考方案1】:
对于过滤,您必须使用 ->where('IDOP', auth()->user()->IDOP) (对于单个用户) ->whereIn('IDOP', [过滤 idops 数组])用于多个 IDOP
【讨论】:
以上是关于如何根据使用 Laravel 连接的用户过滤记录?的主要内容,如果未能解决你的问题,请参考以下文章
根据子表中的“当前”值过滤 belongsToMany 记录