Laravel: автоматически создавать слаг из заголовка, используя методы создания и проверки - PullRequest
0 голосов
/ 26 марта 2020

Я хочу автоматически создать слаг и сохранить его в базе данных на основе названия, введенного в форму. В настоящее время мой контроллер настроен следующим образом:

  public function store(News $id) {
    News::create($this->validateArticle());
    return redirect('/news');
  }

  public function validateArticle() {
    return request()->validate([
      'title' => 'required',
      'excerpt' => 'nullable',
      'body' => 'nullable'
    ]);
  }

Как я могу изменить этот код, чтобы автоматически генерировать слаг на основе заголовка?

Спасибо.

1 Ответ

0 голосов
/ 26 марта 2020

Это еще один вариант того, как это сделать. Или вы можете использовать Observer для наблюдения за методом упаковки следующим образом: news->slug= Str::slug($request->title);

public function store(Request $request)
{
    $news= new News();
    $news->title= $request->title; 
    $news->slug= Str::slug($request->title);
    $news->excerpt= $request->excerpt;
    $news->body= $request->body;
    $news->save();
    return redirect('/news');
}

Используйте для импорта Str use Illuminate\Support\Str;

...