2016-05-13 5 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); 

использовать также Input::has('channelName') вместо просто empty(Input::get('channelName')) в вашем случае.

Смежные вопросы