从laravel中的路由向控制器传递静态值

时间:2017-04-01 21:43:39

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

我想将路由定义中的静态值(变量或静态字符串)传递给控制器​​。 例如,如果考虑以下路线:

Route::get('/', [
      'uses' => '\Controllers\FoController@show',
      'as' => 'show'
]);

我想将一个变量(ex,$ var1)传递给它,然后可以访问FoController构造函数或其他控制器方法中的变量,所以我不喜欢该变量的值显示在网址。 我怎样才能做到这一点?感谢...

3 个答案:

答案 0 :(得分:0)

使用一个闭包并自己调用控制器并传递你想要的任何东西..

Route::get('/', function(){
  $controller = app()->make('FoController');
  return $controller->callAction('show', ['foo' => 'bar', 'ping' => 'pong']);
});

答案 1 :(得分:0)

作为@serge答案的后续行动,您也可以这样做,只是发布可能会对某人有用

Route::get('/','fooController@index')
    ->defaults('id', '3');

答案 2 :(得分:-1)

你可以这样做。

public function createuser($id){
//here you can use $id
}

您可以使用{}运算符作为参数。 在控制器中。

{{1}}