Как передать несколько параметров в маршрут с именем ресурса - PullRequest
0 голосов
/ 25 марта 2019

У меня есть названный маршрут.Я хочу передать два параметра в действие 'edit' (например, {id} и {month}).

Я пытался передать параметры через массив, но все еще не работал.

Route::resource('admin/worktimes', 'WorktimesController')->names([
    'index' => 'worktimes',
    'show' => 'worktimes.show',
    'create' => 'worktimes.create',
    'edit' => 'worktimes.edit',
    'store' => 'worktimes.store',
    'update' => 'worktimes.update'
])

{{ route('admin/worktimes', array($id, $month) }}

Созданный URL-адрес: ' http: //.../admin/worktimes/4/edit? Month = 2019-05 '.Я хочу иметь что-то вроде ' http: //.../admin/worktimes/4/2019-05/edit'.

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

Метод ресурса по умолчанию не допускается при редактировании нескольких параметров.

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

и если нам нужно изменить их, тогда необходимо изменить некоторые основные функции маршрутизации laravel.

и это не очень хорошая идея. потому что это затронуло все маршруты редактирования проекта.

поэтому мы просто перезаписываем маршрут редактирования ресурса нашим правилом маршрута.

 Route::get('admin/worktimes/{id}/{month}/edit', ['as' => 'worktimes.edits', 'uses' => 'WorktimesController@edit']);

Это правило должно быть написано после маршрута ресурса, записанного для worktimesController в route.php.

Спасибо

0 голосов
/ 25 марта 2019

вы не можете получить желаемый результат с resource

Марка Route('admin/worktimes/{id}/{month}/edit','WorktimesController@edit') и в вашем контроллере метод редактирования будет похож public function edit($id,$month){ //your code }

...