@den-masonov

Вывожу ресурсный роут '/' в blade, но при переходе на dw.app/2 выдает 404. Если роут будет '/list', например, то все работает. Как исправить?

Пробовал и url(), и action(), и route().

Это в blade:
<a href="{{ url('/', [$article->id]) }}">{{ $article->title }}</a>


Это роуты:
Route::resource('/', 'ArticleController');

Route::get('/welcome', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index');


И ArticleController:
public function index()
    {
        $articles = Article::where('published', 1)->get();

        return view('list', ['articles' => $articles]);
    }

    public function show($id)
    {
        $article = Article::with('comments')->find($id);

        return view('article', ['article' => $article]);
    }


При переходе по ссылке вида dw.app/2 выдает NotFoundHttpException in RouteCollection.php line 179:
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
pLavrenov
@pLavrenov
Разработка сайтов
a01d62d4ba4f4eb9aaecb277c6aa8f15.png

Вот тут все стандартные роуты ресурса. Для ресурса надо задавать название.

Надо исправить так:
Route::resource('article', 'ArticleController');
route('article.show', ['id'=>$id]);


А чтобы сделать article.index главной страницей можно добавить:
1) Для редиректа на раздел article
Route::get('/', function () {
        return redirect()->route('article.index');
});

2) Так будет открываться в корне
Route::get('/', ['as' => 'home', 'uses' => 'ArticleController@index']);


Чтобы работало по ссылке "/2" нужен такой роут:
Route::get('/{id}', ['uses' => 'ArticleController@show']);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы