【问题标题】:Laravel CRUD delete route parametersLaravel CRUD 删除路由参数
【发布时间】:2019-06-01 13:05:11
【问题描述】:

我喜欢使用 CRUD 控制器来处理管理员配置文件。我创建了控制器并像这样编辑了我的路由/web.php。

Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'as' => 'admin.', 'middleware' => ['auth:admin']], function(){
    Route::resource('profile', 'ProfileController')->only(['index', 'edit', 'update', 'destroy']);
});

这将创建以下路线。

admin/profile -> admin.profile.index
admin/profile/{profile} -> admin.profile.destroy
admin/profile/{profile} -> admin.profile.update
admin/profile/{profile}/edit -> admin.profile.edit

由于我通过会话获得了 admin_id,因此我不需要通过配置文件参数通过 URL 获得它。我知道我可以忽略该参数,但它使 URL 不必要的长。 是否有机会从路线中删除 {profile} 参数,这样我的路线就像 teacher/profile/edit 而不是 teacher/profile/12345678/edit ?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以为单独的操作使用单独的路线而不是资源。 喜欢

    For index operation you can use:-
    Route::get('profile', 'ProfileController@index');
    For destroy operation you can use:-
    Route::delete('profile', 'ProfileController@destroy');
    For edit operation you can use:-
    Route::put('profile', 'ProfileController@edit');
    

    您可以在输入或会话中发送您的 admin_id。 希望它对你有用:)

    【讨论】:

      【解决方案2】:
      • 是的,您可以从路由中删除该特定参数。
      • 但您必须通过 post 变量发送配置文件数据
      • 这不可能在每次重定向中都发送帖子数据。

      我建议您使用“Slugs”而不是个人资料 ID

      【讨论】:

        【解决方案3】:

        是的,如果您像这样在控制器中首先调用所需的配置文件,则可以删除 {profile} 部分:

        public function edit(){
            $teacher = Auth::user();
            return view('teacher.profile.edit', compact('teacher'));
        }
        

        在视图页面(教师/档案/编辑)中,您可以这样调用数据:

        <form method="post" action="{{ route('teacher.profile.update', $teacher->id) }}">
            @method('PATCH')
            @csrf
            ID: <input type="text" name="id" value={{ $teacher->id}} />
            <button type="submit">Update</button>
        </form>
        

        我希望这会有所帮助。干杯!

        【讨论】:

          猜你喜欢
          • 2015-07-06
          • 2018-06-23
          • 2021-10-01
          • 2012-01-29
          • 2016-01-02
          • 2023-01-20
          • 1970-01-01
          • 2016-03-05
          • 2021-02-04
          相关资源
          最近更新 更多