public function showall(){
$boats = Boats::all();
$name = Boats::get('name');
return view('categories/motor-boats')
->with('boats', $boats)
->with('name', $name)
;
}
На фронтенде у меня конструкция
@foreach($boats as $boat)
{{ $boat->name }}
@endforeach
Проблемма в том что мне нужно переменную name пропустить через функцию
$slug = Str::slug($name, '-');
А потом передать на фронтенд. Подскажите как это сделать. Так как если я передаю
->with('name', $name)
То у меня на фронтенд отображается целый массив из БД. Как мне вытянуть один елемент, чтобы пропустить его через слаг, чтобы уже потом его вставить в foreach.
Нашел функцию которой решил вопрос
$title = str_slug("Laravel 5 Framework", "-");
// laravel-5-framework Она вставляется в скобки {{}} и работает
Я хотел сделать человекопонятный URL. В итоге сдеал с помощью
{{ str_slug("Laravel 5 Framework", "-")}}
Используйте акцесор в моделе Boats:
public function getSlugAttribute()
{
return Str::slug($this->name, '-');
}
В шаблоне:
@foreach($boats as $boat)
{{ $boat->slug }}
@endforeach
Но я бы рекомендовал хранить слаг в базе данных.
Передайте при вызове view() в контроллере:
return view('categories/motor-boats', [
'name' => $name
]);
Продвижение своими сайтами как стратегия роста и независимости