Контроллер рюкзака Laravel - невозможно понять, как добавить логику в скрипт в методе Create.

Я установил Laravel 6 с Backpack 4. Я создал форму с 3 полями:

  • заглавие
  • Слаг (установлен как скрытое поле)
  • Содержание

После сохранения данных я хотел бы взять заголовок и сохранить его как слаг с помощью Laravel Helper:

use Illuminate\Support\Str;
$slug = Str::slug('Laravel 6 Framework', '-');

Я не могу понять, где мне разместить этот код. В обычном приложении Laravel я бы поместил его в метод store(), сначала установил для слага "допускающий значение NULL" при валидации, а затем применил вспомогательный метод перед сохранением слага в базу данных.

Но с Laravel Backpack я потерялся...

Есть идеи, пожалуйста?

Спасибо.

1 ответ

Backpack использует контроллер и модели, поэтому вы можете перезаписать метод store контроллера, если хотите.

Но для этого варианта использования я рекомендую вам изменить свою модель. Это потому, что ваша строка должна быть задержана независимо от того, откуда исходит запрос - из интерфейсной формы или формы панели администратора. Так что лучше иметь эту логику в одном месте - модели, чем повторять ее в нескольких местах вашего приложения. В Laravel вы можете легко сделать это с помощью мутатора в своей модели:

    public function setSlugAttribute($value)
    {
        $this->attributes['slug'] = \Str::slug($value, '-');
    }
Другие вопросы по тегам