Могу ли я использовать классы или Фасады на странице Laravel blade?

241
27 сентября 2018, 23:50

Иногда необходимо использовать классы например модель User или фасад Carbon.

Могу ли я использовать название класса или фасада на странице blade ?

Answer 1

Вообще не лучший подход пихать это во вьюшки! Логикой должен заниматься контроллер (например, получением нужных записей из БД), а за формат вывода может вполне отвечать модель.

Например, получаем первого попавшегося пользователя в контроллере и передаем его во вью:

public function getFirstUser()
{
    $user = Users::firstOrFail();
    return view('myview')->with('user', $user);
}

Если мы хотим вывести дату создания пользователя в другом формате, то можно в модели использовать мутатор:

public function getMyDateFormatAttribute()
{
    if (isset($this->attributes['created_at'])) {
        return Carbon::parse($this->attributes['created_at'])->format('d.m.Y');
    }
}

После этого во вьюшке можно вывести дату в нужном нам формате:

{{ $user->myDateFormat }}

Получим: dd.mm.yyyy

Подробнее о мутаторах: https://laravel.com/docs/5.6/eloquent-mutators

Answer 2

Во фреймворка не предусмотрен такой вариант и при попытке просто подключить модель в шаблоне через require_once или include_once будет выдаваться предупреждение или ошибка. Лучше подключайте и используйте эти классы в контроллере и в нем же передавайте результаты вычислений в определенный шаблон.

READ ALSO
YII2 динамическая форма

YII2 динамическая форма

YII2Каким образом можно создать динамическую форму и потом добавить все данные в базу данных?

260
Проверка логина при регистрации

Проверка логина при регистрации

Помогите, нужно, чтобы в логине было не больше чем 2 пробела и полностью запретить ввод числа

196
Как установить mssql driver для php?

Как установить mssql driver для php?

Есть Centos 7, php71, yii2 и удаленная база данных ms sql

246
Как создать массив такого вида?

Как создать массив такого вида?

Вывожу нужные мне записи из базы:

219