加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 将Laravel 5方法注入与其他参数一起使用

发布时间:2020-12-14 19:42:15 所属栏目:大数据 来源:网络整理
导读:所以我正在开发一个管理界面.我有一条路线设置如下: Route::controllers([ 'admin' = 'AdminController',]); 然后我有一个控制器与一些方法: public function getEditUser($user_id = null){ // Get user from database and return view}public function p
所以我正在开发一个管理界面.我有一条路线设置如下:

Route::controllers([
    'admin' => 'AdminController',]);

然后我有一个控制器与一些方法:

public function getEditUser($user_id = null)
{
    // Get user from database and return view
}

public function postEditUser($user_id = 0,EditUserRequest $request)
{
    // Process any changes made
}

正如您所看到的,我正在使用方法注入来验证用户输入,因此URL将如下所示:

http://example.com/admin/edit-user/8697

GET请求将转到GET方法,POST请求转到POST方法.问题是,如果我正在创建新用户,则不会有ID:

http://examplecom/admin/edit-user/

然后我得到一个错误(转述):

Argument 2 passed to controller must be an instance of EditUserRequest,none given

所以现在我传递一个0的ID以使其能够用于创建新用户,但是这个应用程序刚刚开始,所以我将不得不在整个应用程序中执行此操作吗?是否有更好的方法来传递验证方法和可选的参数?任何智慧都将受到赞赏.

解决方法

您可以反转参数的顺序,以便可选的参数是结束:

public function postEditUser(EditUserRequest $request,$user_id = null)
{

}

然后,Laravel将首先解析EditUserRequest,如果没有user_id则不再传递,因此默认值将启动.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读