在搜索中添加一个数字以在php / laravel中显示正确的结果

问题描述 投票:0回答:1

我创建了一个简单的搜索功能,通过搜索我的必填字段来匹配我的关键字。除了我的“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'));
}
php mysql laravel
1个回答
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...
© www.soinside.com 2019 - 2024. All rights reserved.