如何将变量从一个控制器传递到另一个Laravel

时间:2018-07-12 12:34:20

标签: laravel-5 model-view-controller

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

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”。 这是怎么了? 还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

这将帮助您:

(node:13791) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): [object Object]
(node:13791) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

然后使用重定向:

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

public function index($var){
  echo $var;
}

祝你好运~~~

答案 1 :(得分:0)

我希望这还不算太晚。但是我相信有一天这可能对某人有帮助!!! 在您的 SomeController 中 将此实例添加为 public $ attributes; 以此添加要传递给另一个控制器的变量

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

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

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

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