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

前端之家收集整理的这篇文章主要介绍了php – 将Laravel 5方法注入与其他参数一起使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我正在开发一个管理界面.我有一条路线设置如下:

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则不再传递,因此默认值将启动.

猜你在找的Laravel相关文章