如何将参数传递给Laravel 5中的隐式控制器?

时间:2016-10-25 06:36:06

标签: php laravel laravel-5 routes laravel-5.3

在laravel 4.2和laravel 5.3中,路由中都有一个使用隐式控制器的选项。两个版本的语法都相同。

AspNetRoles, 
AspNetUserClaims, 
AspNetUserLogins
AspNetUserRoles
AspNetUsers 

所以URL将是:

Route::controller('myroute', 'myDearController');

在laravel 4中,控制器将如下所示:

http://my.domain.com/myroute/function-name/parameter1/parameter2

然而,在laravel 5中,要获得GET输入,它会占用一个参数位置,所以我尝试做这样的事情:

//..... Some other controller related syntax ......
public function getFunctionName($parameter1, $parameter2) {
    $inputs = Input::all();
    dd($inputs);
}
//..... Some other controller related syntax ......

但是,网址会返回//..... Some other controller related syntax ...... public function getFunctionName(Request $request, $parameter1, $parameter2) { $inputs = $request->all(); dd($inputs); } //..... Some other controller related syntax ...... 。我试着改变位置,

The site can't be reached

它不起作用。我知道我可以将行//..... Some other controller related syntax ...... public function getFunctionName( $parameter1, $parameter2, Request $request) { $inputs = $request->all(); dd($inputs); } //..... Some other controller related syntax ...... 添加到路由文件中,但除了在路由文件中明确指定之外,还有一种默认的方法吗?

3 个答案:

答案 0 :(得分:1)

使用显式路由时,它应为{parameter}而不是{$parameter}。 所以,

Route::get('myroute/function-name/{parameter1}/{parameter2}', 'myDearController@getFunctionName')

答案 1 :(得分:0)

您不能再使用::controller,因此您需要为Laravel 5应用创建显式路由,并且没有默认方式来执行4.2中::controller所做的操作。您可以查看Resource controllers,它允许您为CRUD使用一些隐式路由。

  

Laravel资源路由分配典型的" CRUD"使用单行代码路由到控制器。

答案 2 :(得分:0)

/arch:AVX2

如果您执行 php artisan route:list ,您将看到所有路线的列表。