Я установил следующую функцию в моей модели:
public function path() {
return route('news.show', ['id' => $this->id, 'slug' => $this->slug]);
}
Теперь я хотел бы получить доступ к этой функции в моем файле index.blade.php
- вот так:
@foreach ($articles as $article)
<a href="{{ $article->path() }}">
// rest of code goes here
</a>
@endforeach
Но когда я пытаюсь это сделать, я получаю следующую ошибку:
Facade\Ignition\Exceptions\ViewException
Missing required parameters for [Route: news.show] [URI: news/{id}/{slug}]. (View: C:\laragon\www\startup-reporter\resources\views\news\index.blade.php)
Вот как выглядят мои маршруты (web. php):
Route::get('news', 'NewsController@index')->name('news.index');
Route::get('news/create', 'NewsController@create')->name('news.create');
Route::get('news/{id}/{slug}', 'NewsController@show')->name('news.show');
Route::get('news/{id}/edit', 'NewsController@edit')->name('news.edit');
Route::post('news', 'NewsController@store')->name('news.store');
Route::put('news/{id}', 'NewsController@update');
А вот мой контроллер:
// Index
public function index() {
$news = News::latest()->get();
return view('news.index', ['articles' => $news]);
}
// Show
public function show(News $id) {
return view('news.show', compact('id'));
}
Есть идеи, почему это не работает и что мне нужно сделать, чтобы это заработало?
Спасибо.