在搜索中添加一个数字以在php / laravel

时间:2016-06-18 21:26:45

标签: php mysql laravel

我创建了一个简单的搜索功能,通过搜索我的必填字段来匹配我的关键字。这适用于除了我的" 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'));
}

1 个答案:

答案 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...