2016-02-10 6 views
6

क्या AppServiceProvider में सत्र मानों तक पहुंचने के लिए कोई रास्ता उपलब्ध है? मैं सभी विचारों में वैश्विक स्तर पर सत्र मूल्य साझा करना चाहता हूं।लार्वेल: AppServiceProvider में सत्र मान कैसे प्राप्त करें?

+0

कृपया, मेरे अद्यतन जवाब – Moppo

+1

जाँच @Moppo यह धन्यवाद काम नहीं कर रहा – Qazi

उत्तर

9

आप सीधे एक सेवा प्रदाता से सत्र नहीं पढ़ सकते हैं: Laravel में सत्र StartSession मिडलवेयर है कि सभी सेवा प्रदाताओं बूट चरण के बाद कार्यान्वित द्वारा नियंत्रित किया जाता

आप सभी को देखने के साथ एक सत्र चर साझा करना चाहते हैं, आप अपने सेवा प्रदाता से एक view composer उपयोग कर सकते हैं:

public function boot() 
{ 
    view()->composer('*', function ($view) 
    { 
     $view->with('your_var', \Session::get('var'));  
    }); 
} 

संगीतकार के लिए दूसरा तर्क के रूप में पारित कॉलबैक, जब दृश्य रेंडर किया जाएगा बुलाया जाएगा तो StartSession पहले से ही उस बिंदु पर निष्पादित किया जाएगा

0

लैरवेल 5.2 पर मेरे लिए निम्नलिखित कार्य करता है, क्या यह आपके ऐप पर त्रुटियों का कारण बनता है?

AppServiceProvider.php

class AppServiceProvider extends ServiceProvider 
{ 
/** 
* Bootstrap any application services. 
* 
* @return void 
*/ 
public function boot() 
{ 
    \Session::put('lang', 'en_US'); 
    view()->share('lang', \Session::get('lang', 'de_DE')); 
} 

/** 
* Register any application services. 
* 
* @return void 
*/ 
public function register() 
{ 
    // 
} 
} 

home.blade.php

<h1>{{$lang}}</h1> 

ब्राउज़र में "en_US" दिखाता है।

+0

\ सत्र, खाली परिणाम प्राप्त करने, जैसे मैं करने की कोशिश की काम करता है इस 'print_r (\ सत्र :: सभी());' कोई परिणाम नहीं – Qazi

+1

@Kaloyan: आप कर रहे हैं सुनिश्चित करें कि आप कहीं और वैरिएबल सेट नहीं कर रहे हैं? मुझे नहीं लगता कि आप सेवा प्रदाता से सत्र तक पहुंच सकते हैं क्योंकि यह मिडलवेयर – Moppo

+0

@Moppo में शुरू हुआ है, हां, मैं इसे कहीं और नहीं स्थापित कर रहा हूं, शायद यह कुछ ऐसा है जो 5.1 और 5.2 के बीच बदल गया है? –

संबंधित मुद्दे