यह लक्ष्य विभिन्न विधि से प्राप्त कर सकता है,
1. बेसकंट्रोलर का उपयोग करना
जिस तरह से मैं चीजों को स्थापित करना पसंद करता हूं, मैं एक BaseController
वर्ग बनाता हूं जो लारवेल के स्वयं के विस्तार करता है Controller
, और वहां विभिन्न वैश्विक चीजों को स्थापित करता है। अन्य सभी नियंत्रक तब BaseController
लारवेल के नियंत्रक के बजाय विस्तार करते हैं ।
class BaseController extends Controller
{
public function __construct()
{
//its just a dummy data object.
$user = User::all();
// Sharing is caring
View::share('user', $user);
}
}
2. फ़िल्टर का उपयोग करना
यदि आप इस तथ्य के लिए जानते हैं कि आप संपूर्ण एप्लिकेशन पर प्रत्येक अनुरोध पर विचारों के लिए कुछ सेट अप करना चाहते हैं, तो आप इसे एक फ़िल्टर के माध्यम से भी कर सकते हैं जो अनुरोध से पहले चलता है - यह है कि मैं लारवेल में उपयोगकर्ता ऑब्जेक्ट के साथ कैसे व्यवहार करता हूं।
App::before(function($request)
{
// Set up global user object for views
View::share('user', User::all());
});
या
आप अपने स्वयं के फ़िल्टर को परिभाषित कर सकते हैं
Route::filter('user-filter', function() {
View::share('user', User::all());
});
और साधारण फ़िल्टर कॉलिंग के माध्यम से इसे कॉल करें।
संस्करण 5 के अनुसार अद्यतन। * *
3. मिडिलवेयर का उपयोग करना
के View::share
साथ का उपयोग करनाmiddleware
Route::group(['middleware' => 'SomeMiddleware'], function(){
// routes
});
class SomeMiddleware {
public function handle($request)
{
\View::share('user', auth()->user());
}
}
4. व्यू कंपोजर का उपयोग करना
व्यू कम्पोज़र अलग-अलग तरीकों से देखने के लिए विशिष्ट डेटा को बांधने में मदद करता है। आप चर को सीधे विशिष्ट दृश्य या सभी दृश्यों से बांध सकते हैं। उदाहरण के लिए आप आवश्यकता के अनुसार अपने व्यू कंपोज़र फ़ाइल को स्टोर करने के लिए अपनी निर्देशिका बना सकते हैं। और सेवा के माध्यम से इन दृश्य संगीतकार फ़ाइल दृश्य के साथ बातचीत प्रदान करते हैं।
संगीतकार विधि अलग तरीके से उपयोग कर सकते हैं, पहला उदाहरण एक जैसे दिख सकते हैं:
आप एक App\Http\ViewComposers
निर्देशिका बना सकते हैं ।
सेवा प्रदाता
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ViewComposerServiceProvider extends ServiceProvider {
public function boot() {
view()->composer("ViewName","App\Http\ViewComposers\TestViewComposer");
}
}
उसके बाद, इस प्रदाता को "प्रदाताओं" अनुभाग के तहत config / app.php में जोड़ें।
TestViewComposer
namespace App\Http\ViewComposers;
use Illuminate\Contracts\View\View;
class TestViewComposer {
public function compose(View $view) {
$view->with('ViewComposerTestVariable', "Calling with View Composer Provider");
}
}
ViewName.blade.php
Here you are... {{$ViewComposerTestVariable}}
यह विधि केवल विशिष्ट दृश्य के लिए मदद कर सकती है। लेकिन अगर आप सभी विचारों के लिए ViewComposer को ट्रिगर करना चाहते हैं, तो हमें इस एकल परिवर्तन को ServiceProvider पर लागू करना होगा।
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ViewComposerServiceProvider extends ServiceProvider {
public function boot() {
view()->composer('*',"App\Http\ViewComposers\TestViewComposer");
}
}
संदर्भ
लारवेल डॉक्यूमेंटेशन
आगे के लिए क्लेरिफिकेशन लाराकास्ट एपिसोड
अगर अभी भी मेरी तरफ से कुछ अस्पष्ट है, तो मुझे बताएं।