2015-03-05 5 views
2

Я вижу, вы можете позвонить моему MyModel::all(), а затем вызвать «где» «группиЙ» .. и т.д. я не могу показаться, чтобы найти orderBy как этот Q & A suggest.. ли это было удалено в Laravel 5?Laravel 5 Заказать модель?

Я пытался просматривал документы для обращения в Collection и Model, но я предполагаю, что это на самом деле просто модификаторы для сбора возвращенной и фактически не модифицируя оператор запроса ..

Единственный способ, которым я информация об использовании заказа составляет

\DB::table($table)->where($column)->orderBy($column); 

Это единственный способ заказать вашу базу данных при выполнении запроса?

ответ

4

Вы действительно можете просто использовать его как where и groupBy:

$result = MyModel::orderBy('name', 'desc')->get(); 

Обратите внимание, что по телефону MyModel::all() вы уже выполняющийся запрос.


В общем, вы можете в значительной степени использовать каждый метод из конструктора запросов документированы here с красноречивыми моделями. Причина этого заключается в том, что метод модели прокси требует (что он не знает) к экземпляру построитель запросов:

public function __call($method, $parameters) 
{ 
    // irrelevant code omitted 

    $query = $this->newQuery(); 

    return call_user_func_array(array($query, $method), $parameters); 
} 

$this->newQuery() создает экземпляр конструктора запросов, который затем используется, чтобы фактически выполнить запрос. Затем, когда результат возвращается, модель/коллекция гидратируется со значениями из базы данных.


Подробнее

Eloquent - Laravel 5 Docs

Illuminate\Database\Eloquent\Builder - API docs

А также регулярный конструктор запросов (так как довольно много звонков получить передаются от красноречивого строитель) Illuminate\Database\Query\Builder - API docs

+0

Интересного ... Я ожидал этого не работает, поскольку не было намека на код, предлагая его в моей среде IDE (Netbeans с помощником laravel ide). У этих вызовов есть какая-либо документация? Я должен быть слепым – StrikeForceZero

+0

Взгляните на мой отредактированный ответ;) – lukasgeiter

+0

неважно, что вы отредактировали ответ, спасибо! – StrikeForceZero

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