Правило валидации in_array
В версии 5.2.22 была добавлена возможность валидации массивов, что сильно упрощает жизнь разработчиков. В версии 5.2.23 будет добавлено новое правило in_array, которое позволяет проверить соответствует ли значение элемента массива элементу другого массива.
Validator::make(
[
'devices' => [['user_id' => 1], ['user_id' => 2]],
'users' => [['id' => 1], ['id' => 2]]
],
['devices.*.user_id' => 'in_array:users.*.id']
);
Колбэки Arr::first() и Arr::last() станут необязательными
$array = [100, 200, 300];
// Вернет 100
Arr::first($array);
// Вернет 300
Arr::last($array);
// Вернет 200
Arr::first($array, function ($key, $value) {
return $value >= 150;
});
Указание более одного middleware за раз в контроллерах
$this->middleware(['auth', 'subscribed'], ['only' => ['getCandy']]);
Новые директивы Blade - @php, @endphp и @unset
@php упрощает написание блоков php кода в шаблонах
@php($count = 1)
@php(++ $count)
@php
$now = new DateTime();
$environment = isset($env) ? $env : "testing";
@enphp
@unset это просто обертка для unset().
@unset($count)
Возможность расширения директив Blade
До версии 5.2.23 было невозможно расширять или переопределять директивы шаблонизатора, теперь это станет доступным для расширений.
Экранирование директив Blade с помощью @
// output: <?php continue; ?>
@continue
// output: @continue
@@continue
Новый почтовый драйвер для SparkPost
Ввиду последних довольно грустных событий с Mandrill, в версии 5.2.23 будет добавлен драйвер для Spark Post, который позволяет отправлять до 100000 писем ежемесячно бесплатно.
Новый метод monthlyOn() для планировщика
$schedule->call(function () {
DB::table('tmp')->delete();
})->monthlyOn(4, '12:00');
Новый метод app()->isLocale()
// Теперь вместо
if (app()->getLocale() == 'en')
// можно будет делать так
if (app()->isLocale('en'))
Запросы к JSON полям MySQL 5.7 можно будет делать напрямую через query builder
JSON поля были добавлены в MySQL 5.7 и стали доступны в Laravel 5.2.22. В версии 5.2.23 можно будет делать запросы к JSON структурам напрямую из query builder'а.
К примеру имеем структуру:
{"en":"name","ru":"имя"}
Можно делать следующие запросы:
User::where('name->en', 'name')->get();
Новые хэлперы для тестирования - seeElement() и dontSeeElement()
К примеру имеем элемент:
<image width="100" height="50">
Следующие тесты вернут положительный результат:
$this->seeElement('image', ['width' => 100, 'height' => 50]);
$this->dontSeeElement('image', ['class' => 'video']);