2016-04-19 75 views
0
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的代码看起来像这样。它不工作。我想在函数index()中初始化函数abc()中使用一些变量。这里变量$ a是公共类型,并在函数index()中初始化为 $this->a =$input;并在函数abc()中作为print_r($this->a);来访问它 我不能在函数abc()中调用函数index(),因为它返回到其他页面,而函数abc也返回到其他一些不同于index()的页面。如何在Laravel中使用共享变量PHP

有人可以纠正我哪里出错访问函数abc()中的变量$ a或可以建议我更好的方式来访问$ a函数而不使用全局变量?

+3

我想这应该是'$请求::所有()' – aldrin27

+0

不,它的正常工作,甚至我的问题是访问变量..你可以初始化$输入任何东西说$ input =“Hello World”。 –

+0

你如何访问'abc()'? – aldrin27

回答

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')); 
    } 
} 
+0

这种方法的问题(功能虽然)是,为了测试目的,你将依赖于Request类,就像你使用依赖注入并注入Request对象一样,然后你可以用它来测试你的控制器。 – azngunit81

+0

是的,对我的情况来说,这样做不是个好主意,因为我在索引函数本身中使用的所有请求,并且针对不同页面中的重定向的不同条件提供了许多条件语句。那么你能告诉我做同样行为的更好方法吗? –

+1

@BaidyanathPrasad你应该使用会话。 –