2016-04-19 78 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你應該使用會話。 –