【问题标题】:How to use shared variable in Laravel PHP如何在 Laravel PHP 中使用共享变量
【发布时间】:2016-04-20 14:58:36
【问题描述】:
 class xyzController extends Controller
 {  
   public $a;
   public function index(Request $request){
           $input =Request::all();
           print_r($input);
           $this->a =$input;

           return view('page_name', compact('array_name'));
   }

   public function abc(){
          print_r($this->a);
   }
}

我在 Laravel 中的代码如下所示。它不工作。我想在函数 abc() 中使用一些变量,该变量在函数 index() 中初始化。这里变量 $a 是公共类型并在函数 index() 中初始化为 $this->a =$input; 并在函数 abc() 中以 print_r($this->a); 访问它 我无法在函数 abc() 中调用函数 index(),因为它正在返回到其他一些页面,而函数 abc 也返回到与 index() 不同的其他一些页面。

谁能纠正我在访问函数 abc() 中的变量 $a 时出错的地方,或者可以建议我在不使用全局变量的情况下访问函数中的 $a 的更好方法?

【问题讨论】:

  • 我觉得应该是$request::all()
  • 不,即使我的问题是访问变量,它也能正常工作。你可以初始化 $input 任何东西说 $input ="Hello World"。
  • 如何访问abc()
  • 这个函数被一些其他页面使用,该页面已经在 route.php 中路由。问题是如何在函数 abc() 中访问这个变量?
  • 为什么不使用它作为参数?

标签: php laravel-5.2


【解决方案1】:

这样做:

class xyzController extends Controller
{  
   public function index(Request $request){
     $input =Request::all();
     session()->put('requestData',$input);
     print_r($input);

     return view('page_name', compact('array_name'));
   }

   public function abc(){
     print_r(session('requestData'));
   }
}

【讨论】:

  • 这种方法的问题(虽然是功能性的)是为了测试目的,您将依赖 Request 类,如果您使用依赖注入并注入 Request 对象,那么您可以测试您的控制器用它。
  • 是的,对于我的情况来说,这样做并不是一个好主意,因为我在索引函数本身中接受的所有请求,并且它有许多针对不同条件的条件语句,用于在不同页面中重定向。那么你能告诉我做同样动作的更好方法吗?
  • @BaidyanathPrasad 你应该使用会话。
  • 你能写出更多关于会话语法的内容吗?
  • @BaidyanathPrasad 如果你想在访问 abc 函数后数据消失,只需在 abc 函数中的 print 语句后多放一行 session->forget('requestData');
猜你喜欢
  • 2018-03-23
  • 2014-04-20
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-13
  • 2011-02-27
  • 1970-01-01
相关资源
最近更新 更多