Иногда требуется выбрать не всю таблицу, а только некоторые поля из связи в контроллере. Сделать это можно так:
$user = User::with(['department' => function ($q) { $q->select(['id','name']); } ])->get();
Иногда требуется выбрать не всю таблицу, а только некоторые поля из связи в контроллере. Сделать это можно так:
$user = User::with(['department' => function ($q) { $q->select(['id','name']); } ])->get();
Шаблоны blade используются для представления данных, нам нужно добавить некоторые проверки и If структуры. Один из примеров это цикл @foreach, когда нужно выполнить какие-либо действия с первым или последним элементом массива. Blade не поддерживает эту функциональность самостоятельно, итак, что же нам делать?
Под капотом, Blade-файлы в действительности преобразуются в чистый PHP. Итак, хитрость в том, что мы можем использовать любую функцию из PHP. И с массивами у нас есть две полезных функции что бы получить первый и последний элементы массива:
Итак, как это выглядит в настоящем примере с Blade? Предположим, мы хотим скрыть каждый элемент div, кроме первого:
Похожий пример — что если мы хотим добавить CSS-класс к последнему элементу меню?
Это все. Как вы можете видеть Blade не только шаблонизатор, он обладает мощью структур и функций PHP
В коллекциях Laravel 5.1 нет функции like для коллекций, но можно написать подобное поведение при помощи filter.
$searchBy = 'gr'; $data = collect(array('name' => 'gregg', 'name' => 'john', 'name'=> 'alice')); $data = $data->filter(function ($item) use ($searchBy) { return (bool) preg_match('#^'.preg_quote($searchBy).'.*$#us', $item['name']); });
SQL like | preg_match |
---|---|
% | .* |
_ | . |