我希望其他控制器方法共享一个变量。这个变量可以通过一种控制器方法更新,并且变化应该反映在其他方法中?有什么建议 ?这样做的最佳做法是什么?这是我的代码:
<?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
}
}
答案 0 :(得分:5)
在构造函数中设置变量。
function _construct() { $this->global = "some value";}
因此,您不仅需要全局变量,您还希望此变量也应该被其他路径更改。实现此目的的一种方法是使用会话。
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'));
}
答案 1 :(得分:3)
您可以在配置中创建新文件并使用
config('your_new_file_name.key')
请检查:https://laracasts.com/discuss/channels/general-discussion/laravel-5-global-variables