@Kristina8787

Почему laravel выдает мне ошибку Missing required parameters for [Route: admin.articles.edit]?

Доброго времени суток. У меня есть роуты:

Route::prefix('admin')->middleware('auth')->group(function() {

    //admin
    Route::get('/',['uses' => 'Admin\IndexController@index','as' => 'adminIndex']);

    Route::resource('/articles','Admin\ArticlesController');

});

Думаю тут никому не надо обьяснять что тут и зачем, так вот,проблема в том,что когда на странице которую должен выдавать метод index я пишу роут в ссылке:
@foreach($articles as $article)
                        <tr>
                            <td class="align-left">{{$article->id}}</td>
                            <td class="align-left">{!! Html::link(route('admin.articles.edit',['articles'=>$article->alias]),$article->title) !!}</td>
                            <td class="align-left">{{Str::limit($article->text,200)}}</td>
                            <td>
                                @if(isset($article->img->mini))
                                    {!! Html::image(asset(env('THEME')).'/images/articles/'.$article->img->mini) !!}
                                @endif
                            </td>


то мне приходит ошибка что такого роута нет вообще, Route [admin.articles.edit] not defined,
если меняю группу роутов на такую:
Route::name('admin.')->prefix('admin')->middleware('auth')->group(function() {

т.е. просто добавляю к имени admin. , то роут находится,но ошибка уже вот такая Missing required parameters for [Route: admin.articles.edit], но если делаю по обезьяньи т.е. внутри группы пишу вот такой роут:
Route::get('/articles/edit/{articles?}',['uses'=>'Admin\ArticlesController@edit','as'=>'admin.articles.edit']);

то все работает. И такая история с каждым роутом CRUD , а мне нужно чтобы от Route::resource работало как положено, помогите найти ошибку , я уже столько по этому вопросу прочитала и просмотрела,ничего пока не подошло,уверена ошибка какаято простая , но я её в упор не вижу
  • Вопрос задан
  • 2493 просмотра
Решения вопроса 1
@jazzus
Префикс в группе роутов не влияет на name роутов. На name влияет только name. Роут должен быть таким
route('articles.edit', $article)
Без каких-то непонятных линков и конструкций. В контроллере уже получать нужные свойства типа $article->tilte. И Env напрямую вызывать не стоит. Это делается в конфигах по существующим примерам Ларавел.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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