【问题标题】:How to pass a variable from one controller to another laravel如何将变量从一个控制器传递到另一个 laravel
【发布时间】:2019-01-08 17:16:23
【问题描述】:

我正在尝试将变量从控制器传递到其他控制器。我就是这样做的-

SomeController

public function index(){
  $var = 'variable';
  return redirect()->route('toAnotherController')->with('var', $var);
}

Route.php

Route::get('/anotherController', 'AnotherController@index')->name('toAnotherController');

另一个控制器

public function index(){
  echo $var;
}

但是,这会给出错误“未定义的变量 $var”。 这里出了什么问题? 有没有其他方法可以做到这一点?

【问题讨论】:

    标签: laravel-5 model-view-controller


    【解决方案1】:

    这将对您有所帮助:

    Route::get('/anotherController/{var}', 'AnotherController@index')->name('toAnotherController');
    
    public function index($var){
      echo $var;
    }
    

    然后使用重定向:

      return redirect()->route('toAnotherController',[$var]);
    

    祝你好运~~~

    【讨论】:

    • 请记住路由中的{var} 意味着它是必需的。如果这是可选的,您可以将可选参数指定为{var?}
    • 我也尝试过这种方法来传递数据,但我遇到的问题是重定向(传递数据时)。成功了,谢谢!
    【解决方案2】:

    我希望这还不算太晚。但我相信有一天这可能会对某人有所帮助!!! 在你的 SomeController 添加此实例 public $attributes; 用这个添加你想传递给另一个控制器的变量

    $request->attributes->add(['var' => $request->var]);
    

    您可以在需要它的(另一个控制器)控制器上使用下面的代码同样解决它

    $var= app('request')->get('var');
    

    N:B - Laravel 5.7。我不确定早期版本

    【讨论】:

    • 这是我一直在寻找的。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2012-09-12
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多