2014-10-09 16 views
6

मैं view::share('current_user', Auth::User()); करने की कोशिश कर रहा हूं लेकिन लार्वेल 5 में मुझे यह नहीं पता कि यह कहां करना है, एल 4 में आप इसे बेसकंट्रोलर में कर सकते हैं, लेकिन वह अब मौजूद नहीं है ।लैरवेल 5, देखें :: शेयर

जीआरटी ग्लेन

उत्तर

11

सबसे पहले, आप शायद अपने स्वयं के BaseController बना सकते हैं और अन्य नियंत्रकों में यह विस्तार कर सकते हैं।

दूसरी बात यह है कि आप Auth:user() सीधे दृश्य में उपयोग कर सकते हैं, आपको दृश्य में कुछ भी असाइन करने की आवश्यकता नहीं है।

अन्य उपयोगों के लिए आप app/Providers/App/ServiceProvider.php पर जा सकते हैं और boot विधि में आप View::share('current_user', Auth::User()); लेकिन या बेशक आप पहले नामस्थान आयात करने को जोड़ने की आवश्यकता कर सकते हैं: क्योंकि इस फाइल App\Providers नाम स्थान

4

हो जाएगा ताकि मदद मिल सकती है:

App::booted(function() 
{ 
    View::share('current_user', Auth::user()); 
}); 
+0

और आप इस तरह के कोड कहां रखेंगे? :) – Kiwi

+0

रजिस्टर फ़ंक्शन के तहत –

1

मैं में है

use View; 
use Auth; 

v ने कोशिश की, इसे ऐप/प्रदाता में बस काम नहीं कर रहा है। वैकल्पिक तरीका है ग्लोबल मिडलवेयर बनाना और व्यू :: शेयर ('currentUser', Auth :: उपयोगकर्ता()) डालना; क्या आप वहां मौजूद हैं।

8
मैं Laravel 5.0.28, view::share('current_user', Auth::User()) उपयोग कर रहा हूँ क्योंकि इस मुद्दे https://github.com/laravel/framework/issues/6130

क्या मैं बजाय करना है, पहले एक नया सेवा प्रदाता कारीगर का उपयोग कर बनाने के अब और काम नहीं करता है

php artisan make:provider ComposerServiceProvider 

फिर जोड़ने निम्नलिखित

/** 
* Bootstrap the application services. 
* 
* @return void 
*/ 
public function boot() 
{ 
    View::composer('*', function($view) 
    { 
     $view->with('current_user', Auth::user()); 
    }); 
} 

अंत में, आयात View और Auth मुखौटा

, को config/app.php प्रदाताओं सरणी

//... 
'providers' => [ 
    //... 
    'App\Providers\ComposerServiceProvider', 
] 
//... 

फिर खुला app/Providers/ComposerServiceProvider.php कि अभी बनाया ComposerServiceProvider जोड़ने बूट विधि के अंदर

use Auth, View; 

अधिक जानकारी के लिए, http://laravel.com/docs/5.0/views#view-composers

+1

काम करता है! बहुत अच्छे धन्यवाद। –

+2

उस समस्या के मुताबिक, "बूट फ़ंक्शन में, Auth :: user() को अभी तक प्रारंभ नहीं किया गया है, इसलिए इसे दृश्य के रूप में साझा किया जा रहा है।" यह वास्तव में मेरे साथ हो रहा है; Auth :: उपयोगकर्ता शून्य है। यह आपके लिए कैसे काम कर रहा है? – Vic

+0

@ वीक हां, मैं समस्या से हुआ, आपका समाधान क्या है? – iatboy

1

Laravel 5 में laravel 4 में के रूप में ही विधि का उपयोग करता:

View::share('current_user', Auth::User()); 

या दृश्य सहायक का उपयोग कर:

view()->share('current_user', Auth::User()); 

http://laravel.com/docs/5.0/views में देखें

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