我创建了一个简单的搜索功能,通过搜索我的必填字段来匹配我的关键字。这适用于除了我的" Id"之外的每一列。列,因为当我在表格中显示我的ID时,我实际上添加了+ 500和一些文本。这基本上是因为ID列是我的预订/订单参考,我不想从0开始,觉得更容易抵消显示的结果。
基本上我需要在检查request_id列时向搜索添加500。所以对于表中的第一条记录将是1 + 500 +我的前缀,显示为SP-501。我搜索501,它实际上会在表中显示记录501,而不是正确的记录。
继承我的代码:
public function search()
{
$search = \Request::get('search');
$bookings = LcsBooking::where('request_email','like','%'.$search.'%')
->orWhere('request_id', 'like', '%'.$search.'%')
->orWhere('request_name', 'like', '%'.$search.'%')
->orWhere('request_arrival', 'like', '%'.$search.'%')
->orWhere('request_return', 'like', '%'.$search.'%')
->orWhere('request_txauthno', 'like', '%'.$search.'%')
->orWhere('request_vehicle_reg', 'like', '%'.$search.'%')
->orWhere('request_mobile', 'like', '%'.$search.'%')
->orderBy('request_id', 'DESC')
->paginate(20);
return view('admin.lcs.search',compact('bookings'));
}
答案 0 :(得分:0)
您可以先检查一下它是否为字符串整数,如果是,则为其添加500.
$search = \Request::get('search');
$id = ctype_digit($search) ? $search + 500 : $search;
$bookings = LcsBooking::where('request_email','like','%'.$search.'%')
->orWhere('request_id', 'like', '%'.$id.'%')
->orWhere('request_name', 'like', '%'.$search.'%')
// and so on...