Если вы работали с Laravel, скорее всего вы сразу начали использовать Eloquent ORM и пропустили чистые запросы к БД. Однако вы могли пропустить классную вещь - конструктор запросов Fluent Query Builder. Если вы делали запросы наподобие %%Model::where('name', 'John')%%, значит, вы привыкли к удивительному синтаксическому сахару, который Fluent добавляет в ваш код. Но очень не просто разобраться, какую древнюю магию использовали Тэйлор и команда, чтобы воплотить эту мечту в реальность. Чтобы начать, давайте вспомним функцию %%newQuery%% в модели Eloquent, в которой все начинается с создания конструктора запросов Eloquent. Затем мы вызываем его %%setTable%% - просто берётся результат вызова функции %%getTable%% нашей модели и задается таблица для нашего соединения с БД. Мы также задаём отношения в зависимости от атрибута %%(t)with%% (в следующих статьях мы рассмотрим подробнее, как конструктор запросов загружает отношения). Затем мы проверяем, хотим ли мы включить или исключить мягко удалённые модели (//soft-deleted models//). Если надо их исключить, то мы добавляем к запросу условие через %%getQualifiedDeletedAtColumn%%, который по умолчанию %%(t)deleted_at%%. Теперь, мы можем использовать наш экземпляр конструктора запросов Eloquent. Если вы знакомы с Fluent, то вы можете выполнять все ваши обычные запросы, вперемешку с запросами Eloquent. Но действительно здорово то, что конструктор запросов Eloquent предоставляет множество вспомогательных функций, которые позволяют писать в четком, быстром синтаксисе ORM, который и делает Eloquent великолепным. == Метод %%Find%% == Скорее всего первым методом запросов Eloquent, который вы изучите, будет метод поиска - %%find()%%. Он вызывает метод модели %%getKeyName%% и возвращает запрос вида %%where($primaryKey, '=', $id)%%. А %%findOrFail%% выполняет тот же запрос и, если модель не найдена, возбуждает исключение %%ModelNotFoundException%%. Этот список будет постепенно обновляться, по мере выявления отличий между конструкторами запросов Eloquent и Fluent. Если вам захочется посмотреть исходники конструктора запросов Eloquent, вы можете сделать это через ((https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Eloquent/Builder.php Github)).