【问题标题】:How to pass parameter to implicit controller in Laravel 5?如何将参数传递给 Laravel 5 中的隐式控制器?
【发布时间】:2017-03-07 02:05:41
【问题描述】:

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

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

所以 URL 将是:

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

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

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

但是,在 laravel 5 中,为了获取 GET 输入,它占用了一个参数位置,所以我尝试做这样的事情:

//..... Some other controller related syntax ......
public function getFunctionName(Request $request, $parameter1, $parameter2) {
    $inputs = $request->all();
    dd($inputs);
}
//..... Some other controller related syntax ......

但是,URL 返回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 ......

它不起作用。我知道我可以将Route::get('myroute/function-name/{$parameter1}/{$parameter2}', 'myDearController@getFunctionName') 行添加到路由文件中,但是除了在路由文件中明确指定之外,是否有默认方法可以这样做?

【问题讨论】:

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


    【解决方案1】:
    Route::resource('myroute', 'myDearController');
    

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

    【讨论】:

      【解决方案2】:

      对于显式路由,它应该是{parameter} 而不是{$parameter}。 所以,

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

      【讨论】:

      【解决方案3】:

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

      Laravel 资源路由通过一行代码将典型的“CRUD”路由分配给控制器。

      【讨论】:

      • 那条线如何表明 Route::controller 不再工作?事实上,我正在使用 Route::controller 并且它工作正常,除了传递参数的部分。
      • 在 5.3 中它会给你Method controller does not exist 错误。
      猜你喜欢
      • 2017-01-12
      • 2015-10-19
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 2018-01-29
      相关资源
      最近更新 更多