Как передать несколько значений в маршруты из контроллера в Laravel - PullRequest
0 голосов
/ 12 мая 2018

маршрут

Route::get('/dashboard/view-sub-project/{pid}/{sid}', 'SubProjectController@view')->name('sub-project.view')->middleware('auth');

Просмотр

<a href="{{ route('sub-project.view', request()->route()->parameters['id'] . '/' . $update->id) }}" class="btn btn-primary project-view">View</a>

Значения var

request()->route()->parameters['id'] равно 2

$update->id равен 1

Я правильно определил маршрутизатор в web.php и просматриваю, но все равно выдает ошибку

Отсутствуют обязательные параметры для [Route:sub-project.view] [URI: панель инструментов / view-sub-project / {pid} / {sid}].(Просмотр: /var/www/html/groot-server/resources/views/project/view.blade.php)

Я также пытался изменить свой маршрутизатор

Route::get('/dashboard/view-sub-project/{pid}{sid}', 'SubProjectController@view')->name('sub-project.view')->middleware('auth');

Все еще получена та же ошибка.

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

По вашему мнению, поскольку вы используете функцию маршрута для построения URL, вы можете сделать следующее.

<a href="{{ route('sub-project.view', [
                        'pid' => request()->route()->parameters['id'],
                        'sid' => '$update->id'
                  ]) }}" class="btn btn-primary project-view">View</a>

Вы также можете просмотреть его в функции Laravel Helper .

Если у вас есть только один параметр в маршруте, вы можете просто передать значение. Допустим, у вас был маршрут, который принимал только идентификатор сообщения, Route::get('/posts/{post}/edit')->name(edit). По вашему мнению вы можете сделать {{ route('edit', $post->id) }}.

Если в URL-адрес маршрута передается несколько значений, как в вашем случае, вы передаете массив элементов, ключ которого совпадает с параметром маршрута.

Допустим, у вас есть другой маршрут Route::get('/posts/{post}/comments/{comment}')->name(post.comment). На ваш взгляд вы можете сделать {{ route('post.comment', ['post' => $post->id, 'commment' => $comment->id]) }}.

0 голосов
/ 12 мая 2018

Попробуйте добавить параметры в массив.

   Route::get('/dashboard/view-sub-project/{pid}/{sid}','SubProjectController@view')
       ->name('sub-project.view')
       ->middleware('auth');




   <a href="{{ route('sub-project.view', 
          [
             'pid' => request()->route()->parameters['id'], 
             'sid' => $update->id 
          ]
     ) }}" class="btn btn-primary project-view">
     View
   </a>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...