2016-05-13 6 views
-1

こんにちは、私はこのコードを最小限にしたい:それはあなたが必要とする連鎖方式にあなたを可能にするためlaravelでクエリを最適化する方法は?

if (empty(Input::get('channelName'))) { 
    $channels = Channel::orderBy('updated_at', 'desc')->paginate($perPage)->setPath('?limit=' . $perPage); 
} else { 
    $channels = Channel::where('name', 'like', '%' . Input::get('channelName') . '%')->orderBy('updated_at', 'desc')->paginate($perPage)->setPath('?limit=' . $perPage); 
} 

答えて

0
$channels = Channel::orderBy('updated_at', 'desc')->paginate($perPage)->setPath('?limit=' . $perPage); 

    if (empty(Input::get('channelName'))) { 
     $channels = $channels->get(); 
    } else { 
     $channels = $channels->where('name', 'like', '%' . Input::get('channelName') . '%')->get(); 
    } 
0

Query Builderは、クールな「」です。これにより、ニーズに応じてクエリステートメントを追加する柔軟性が得られます。

$channelsQuery = Channel::orderBy('updated_at', 'desc'); 
if (Input::has('channelName')) { 
    $channelsQuery = $channelsQuery->where('name', 'like', '%' . Input::get('channelName') . '%'); 
} 
$channels = $channelsQuery->paginate($perPage)->setPath('?limit=' . $perPage); 

また、あなたの場合にだけではなくempty(Input::get('channelName'))Input::has('channelName')を使用しています。

関連する問題