首页 > 解决方案 > 搜索laravel中的所有列得到错误的值

问题描述

我创建了一个搜索功能来搜索表上的数据,但是这个搜索结果并不像我需要的那样。这是因为我不能/不知道如何将 i 行查询放在 where 子句上。这个函数像这样

public function search(Request $request)
{

    $ipsrs_id = Auth::user()->roles->ipsrs_id;
    $cari = $request->cari;


    $ipsrs_aduan = Aduan::where('ipsrs_id',$ipsrs_id);// i dont know where i can put this line


    $query = Aduan::query();

    $columns = ['aduan', 'nama_pengadu', 'status' ];
    foreach($columns as $column){

        $query->orWhere($column,'like','%'.$cari.'%');
    }   
    $aduan = $query->paginate();

    return view('admin.report_sarpras',['aduan' => $aduan]);
}

这个问题是我不能把这条线

 $ipsrs_aduan = Aduan::where('ipsrs_id',$ipsrs_id);// i dont know where i can put this line

有人可以帮忙吗??

标签: laravelsearch

解决方案


我想你想要的是过滤 Aduan$ipsrs_id

并检查三列的值,例如$cari

像这样使用where 闭包

    $query = Aduan::where('ipsrs_id',$ipsrs_id);

    $columns = ['aduan', 'nama_pengadu', 'status'];
    $query->where(function($q) use ($columns, $cari) {
        foreach($columns as $column){
            $q->orWhere($column,'like','%'.$cari.'%');
        } 
    });

    $aduan = $query->paginate();

推荐阅读