laravel 5.2控制器中的全局变量

时间:2016-04-30 11:23:29

标签: php laravel-5.2

我希望其他控制器方法共享一个变量。这个变量可以通过一种控制器方法更新,并且变化应该反映在其他方法中?有什么建议 ?这样做的最佳做法是什么?这是我的代码:

<?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 

 }



  }

2 个答案:

答案 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