Контроллер рюкзака 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, '-');
}