如何从组合列中搜索数据?Yajra,Laravel5



我有问题,我无法从组合列中找到数据
我有类似的数据表,名称是从users.first_name和users.last_name组合的,但是该fullname
无法找到它示例:
first_name:ana,
last_name:女王
如果我搜索" ANA"但是,如果我搜索" ana Queen",我就不会得到结果。

$(function () {
    $("#datatable").DataTable({
        processing: true,
        serverSide: true,
        "order": [[ 1, "asc" ]],
        ajax: "{!! route('admin.customers.getdata','Umum') !!}",
        columns: [
            { data: null, bSortable: false, className: "text-center" },
            { data: "id" },
            { data: "name", name: "name" },
            { data: "type" },
            { data: "email" },
            { data: "location" },
            { data: "active", bSortable: false, className: "text-center" },
            { data: "free_ongkir", bSortable: false, className: "text-center" },
            { data: "action", bSortable: false, className: "text-center" }
        ],
        fnRowCallback: function(nRow, aData, iDisplayIndex){
            $("td:first", nRow).html(iDisplayIndex +1);
            return nRow;
        }
    });

这是控制器的代码

public function getdata($type)
{
    $users = User::where(['type'=>$type])->whereHas('roles', function ($query) {
        $query->where('slug', '=', 'user');
    })->get();
    foreach ($users as $key => $value) {
        if($value->id == Sentinel::getUser()->id) $value->disabled = "disabled";
        else$value->disabled = "";
    }
    return Datatables::of($users)
    ->editColumn('name', '
        <a href="{{ route('admin.customers.show', $id) }}">{!! $first_name." ".$last_name !!}</a>
    ')
    ->filterColumn('name', function($query, $keyword) {
                $sql = "CONCAT(users.first_name,'-',users.last_name)  like ?";
                $query->whereRaw($sql, ["%{$keyword}%"]);
            })
    ->editColumn('type', function($users) {
        if($users->hasAccess('superadmin')) return 'Super Admin';
        else return "Komoditi $users->type";
    })
    ->editColumn('active', function($users) {
        if(!$users->is_approved) {
            return '<span class="has-error form-group"><label><i class="fa fa-times-circle-o"></i> Belum di approve</label></span>';
        } else if(Activation::completed($users)) {
            return '<span class="has-success form-group"><label><i class="fa fa-check"></i> Aktif</label></span>';
        } else {
            return '<span class="has-error form-group"><label><i class="fa fa-times-circle-o"></i> Belum Aktivasi</label></span>';
        }
    })
    ->editColumn('free_ongkir', function($users) {
      if ($users->free_ongkir == 1) {
        return '<span class="has-success form-group"><label><i class="fa fa-check"></i></label></span>';
      }else {
        return '<span class="has-error form-group"><label><i class="fa fa-times-circle-o"></i></label></span>';
      }
    })
    ->editColumn('location', function($users){
        if(empty($users->city->name)) return 'None';
        else return $users->city->name;
    })
    ->addColumn('action', '@if(Sentinel::getUser()->hasAccess(["customers.edit"]))<button class="btn btn-primary" type="button" onClick="location.href='{{ route('admin.customers.edit', $id) }}'"><i class="fa fa-edit"></i></button>
        @endif
        {!! Form::open([
            'method'=>'DELETE',
            'route' => ['admin.customers.destroy', $id],
            'style' => 'display:inline'
        ]) !!}
        @if(Sentinel::getUser()->hasAccess(["customers.destroy"]))
            {!! Form::button('<i class="fa fa-trash"></i>', ['class' => 'btn btn-danger btn-md','type'=>'submit','onclick'=>'return confirm("Are you sure want to delete?")', $disabled]) !!}
         @endif
        {!! Form::close() !!}
    ')
    ->make(true);
}

如何组合first_name和last_name列,我可以搜索基础。
谢谢。

您可以做

之类的事情
 $datatables->filterColumn('name', 'whereRaw', 
 "CONCAT(users.fname,',',users.lname) like ? ", ["%$keyword%"]);

尝试使用MySQL DB尝试此示例。

$query->where(DB::raw('CONCAT_WS(" ", first_name, last_name)'), 'like', $search);

=更改为。"%"。like。"%"。喜欢:

$users = User::where(['type'=>$type])->whereHas('roles', function ($query) {
        $query->where('slug', '%' .'like'. '%', 'user');

最新更新