我已经为用户创建了资源路由。
Route::resource('users', 'UsersController');
我的控制器使用我的用户控制器处理路径/user/1/edit
,如下所示:
public function edit(User $user)
{
$this->authorize('update', $user);
...
此页面的模板为:resources/views/users/edit.blade.php
。
我如何定义一条新路由/user/edit
,该路由动态地传递当前用户并重用edit(User $user)
方法,同时还重用相同的视图模板?
答案 0 :(得分:1)
您的edit()
方法将需要更改以有条件地接受User
模型。然后,您需要检查是否通过了$user
,否则假设需要当前用户:
public function edit(User $user = null)
{
$user = $user ?: auth()->user();
$this->authorize('update', $user);
...
并创建新路线:
Route::get('user/edit', 'UsersController@edit')
答案 1 :(得分:0)
尝试一下:
Route::get('users/{user}/edit', 'UserController@edit')->name(edit-user);
然后,按照以下方式在路由中传递用户ID:
route('edit-user', ['user'=>$user->id]);
希望对您有帮助。