【问题标题】:pass a static value to a controller from routes in laravel将静态值从 laravel 中的路由传递给控制器
【发布时间】:2017-04-01 21:43:38
【问题描述】:

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

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

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

【问题讨论】:

  • 如果您希望该值是静态的,为什么不在控制器的函数本身中使用该值?你能解释一下你的问题吗?
  • himashu 说的是真的,如果你想传递静态变量,又不想在 url 中显示,为什么不在控制器中使用它

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    使用闭包并自己调用控制器并传递您想要的任何内容..

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

    【讨论】:

      【解决方案3】:

      你可以这样做。

      Route::any('/home/createuser/{id}','HomeController@createuser');
      

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

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

      【讨论】:

      • 不说明原因就将答案标记为无用是不好的。我只是将其标记为反向有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 2012-09-20
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      相关资源
      最近更新 更多