php - laravel 5.2 Controller 中的全局变量

标签 php laravel-5.2

我想要一个变量被其他 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/

相关文章:

php - 无法将 laravel 5 项目添加到子文件夹

php - 如何仅回显带有 "h5"标签的文本

javascript - JSON 解码不适用于 PHP

php - paypal Adaptive Payment-您无权限制资金来源

laravel - 如何测试广播驱动程序?

laravel - 从数据库配置 Laravel 调度器的时间

javascript - 如何从 Blade 模板中的 Javascript 文件重定向 Laravel 路由

php - date() 和 gmdate() 返回不同的结果

laravel - 如何为特定表中的特定字段设置唯一性?

php - laravel 5.2 : ErrorException: preg_replace(): Parameter mismatch, 模式是一个字符串,而替换是一个数组