我想要一个变量被其他 Controller 方法共享。这个变量可以通过一个 Controller 方法更新,并且更改应该反射(reflect)在其他方法中吗?有什么建议么 ?这样做的最佳做法是什么?这是我的代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use Session;
class test extends Controller
{
public $global;
public function __construct()
public function a(Request $request){
$this->global="some value"
}
public function b(Request $request){
echo $this->global;
//it always return a null
}
}
最佳答案
在构造函数中设置变量。
function _construct() { $this->global = "some value";}
因此,您不仅需要一个全局变量,还希望这个变量也应该被其他路由更改。实现此目的的一种方法是使用 session 。
function a() {
session()->put('global_variable', 'set by method a');
//your other logic
}
从方法 b...
function b() {
//get the variable set by method a here
dd(session()->get('global_variable'));
}
关于php - laravel 5.2 Controller 中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36954249/