簡體   English   中英

在Laravel中過濾多個數據庫列的好方法

[英]Good way to filter multiple DB columns in Laravel

我想再次過濾多個數據庫列的結果,但是我現在的方式似乎一點都不是Laravel的:)

有沒有更好的辦法? 我不想在末尾堆積所有這些sql語句。

$data = Input::except('_token');

        if (isset($data['passenger_name']))
        {
            $passenger_name = $data['passenger_name'];
        } else {
            $passenger_name = '*';
        }

        if (isset($data['passenger_lastname']))
        {
            $passenger_lastname = $data['passenger_lastname'];
        } else {
            $passenger_lastname = '*';
        }

        // Run query
        $q = Reservation::where('passenger_firstname', 'LIKE', '%'. $passenger_name .'%')
                        ->where('passenger_lastname', 'LIKE', '%' . $passenger_lastname .'%')
                        ->get();

        return View::make('dashboard')->with('reservations', $q);


這些只是我要針對其運行查詢的許多條件中的兩個

您可以嘗試以下方法:

$query = Reservation::query();
if(Input::has('passenger_name')) {
    $query->where('passenger_name', Input::get('passenger_name'));
}
if(Input::has('passenger_lastname')) {
    $query->where('passenger_lastname', Input::get('passenger_lastname'));
}
$reservations = $query->get();
return View::make('dashboard')->with('reservations', $reservations);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM