Мэтт Стауффер в настоящее время заканчивает последние штрихи в своей новой книге под названием Laravel: Up and Running. Данная книга вполне может оказаться отличным руководством для новичков фреймворка. Но даже если у вас есть некоторый опыт работы с Laravel, эта книга стоит того, что бы вы потратили на неё своё время. Даже сам Мэтт во время написания этой книги получил много интересной информации по работе с фреймворком.
За время своего отпуска я прочитал предварительную версию книги, содержащую все ожидаемые мной главы, касающиеся специфического функционала Laravel 5.3. Я могу сказать, что она очень хорошо написана и неплохо дополняет официальную документацию. Вот некоторые из вещей, которые я узнал после прочтения этой книги.
Таковы лишь некоторые из примеров, которые я взял из книги. Я очень рекомендую эту книгу тем, кто работает с этим фреймворком (Это мое личное мнение, за которое мне не заплатили :-)). Я не знаю, когда книга будет опубликована, но предполагаю, что это случится довольно скоро. Следите за этим на официальном сайте книги.
Ссылка на оригинальную статью
За время своего отпуска я прочитал предварительную версию книги, содержащую все ожидаемые мной главы, касающиеся специфического функционала Laravel 5.3. Я могу сказать, что она очень хорошо написана и неплохо дополняет официальную документацию. Вот некоторые из вещей, которые я узнал после прочтения этой книги.
Изменение ключа роута для Eloquent модели
Рассмотрим этот маршрут:Route::get('/newsItem/{newsItem}', 'NewsItemController@index');
По умолчанию, при использовании привязки роута к модели, Laravel будет использовать идентификатор модели, чтобы к ней обратиться. Таким образом, URL /newsItem/1
будет работать. Знаете ли вы, что используемый ключ роута может быть изменен путем добавления этого кода в модель newsitem
?public function getRouteKeyName() {
return 'slug';
}
Учитывая то, что столбец slug
содержит в себе запись my-slug
, следующий URL будет работать: /newsItem/my-slug
.Отправка загружаемого ответа
Laravel позволяет с легкостью настроить отклик при загрузке. Вы даже можете установить имя пользователя для отображения в браузере.Response::download($pathToFile, $nameOfDownload);
Использование значений по умолчанию в шаблонах Blade
Всякий раз, когда вы используете переменную в Blade, у вас есть желание установить этой переменной значение по умолчанию, на случай, если этой переменной не будет задано значение.//inside a blade view
{{ $myVariable or "Данная переменная не установлена" }}
Доступ к переменной во всех шаблонах Blade
Вы можете сделать переменную доступной во всех шаблонах blade с помощью методаshare
.view()->share('currentUser', auth()->user());
При желании вы можете поместить этот код в сервис-провайдер.Использование команд на основе замыканий
Вместо того, что бы создавать команду Artisan с помощью отдельного класса, можно определить её с помощью замыкания внутри методаcommands
в файле App/Console/Kernel.php
:// App/Console/Kernel.php
protected function commands()
{
$this->command(
'command:run {myArgument} {--myOption}',
function ($myArgument, $myOption) {
// do something useful here...
});
}
Получение записей в случайном порядке
Конструктор запросов имеет метод вinRandomOrder()
для сортировки извлеченных из модели записей в случайном порядке:$randomUser = DB::table('users')
->inRandomOrder()
->first();
Получение одного значения из записи
Если вам нужно одно какое-либо значение из полученной строки, вы можете использовать методvalue
.$newestNewsItemTitle = DB::table('news_items')
->orderBy('created_at', 'desc')
->value('title');
Добавление столбца UUID
В ваших миграциях вы можете использовать методuuid
, чтобы добавить столбец, который будет содержать UUID.//inside a migration
$table->uuid('id');
В MySQL этот метод создаст столбец типа VARCHAR (36).“Жадная загрузка” количества связанных записей
Если вам нужно получить количество некоторых связанных записей, вы можете использовать методwithCount
:$newsItems = NewsItem::withCount('comments')->get();
Таковы лишь некоторые из примеров, которые я взял из книги. Я очень рекомендую эту книгу тем, кто работает с этим фреймворком (Это мое личное мнение, за которое мне не заплатили :-)). Я не знаю, когда книга будет опубликована, но предполагаю, что это случится довольно скоро. Следите за этим на официальном сайте книги.
Ссылка на оригинальную статью