我有一个命名的路线。
我想将两个参数传递给'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) }}
创建的网址为“ http://.../admin/worktimes/4/edit?month=2019-05”。我想要类似“ http://.../admin/worktimes/4/2019-05/edit”的内容。
答案 0 :(得分:0)
使用resource
制作Route('admin/worktimes/{id}/{month}/edit','WorktimesController@edit')
在您的控制器中,编辑方法将类似于
public function edit($id,$month){
//your code
}
答案 1 :(得分:0)
默认资源方法不允许在编辑中使用多个参数。
它们是资源路由中自动生成的网址。
,如果我们需要更改这些,则必须更改laravel的某些核心路由功能。
那不是一个好主意。因为那会影响到项目的所有编辑路径。
所以我们只是使用路由规则覆盖资源编辑路由。
Route::get('admin/worktimes/{id}/{month}/edit', ['as' => 'worktimes.edits', 'uses' => 'WorktimesController@edit']);
此规则必须写在route.php中为worktimesController写的资源路由之后。
谢谢