मैं लैरवेल 5 में ग्लोबल वैरिएबल कैसे बना सकता हूं जो सभी ब्लेड टेम्पलेट्स में उपलब्ध होगा?लार्वेल 5 - वैश्विक ब्लेड व्यू वेरिएबल सभी टेम्पलेट्स में उपलब्ध
उत्तर
विकल्प 1:
आप view::share()
इसलिए की तरह उपयोग कर सकते हैं:
<?php namespace App\Http\Controllers;
use View;
//You can create a BaseController:
class BaseController extends Controller {
public $variable1 = "I am Data";
public function __construct() {
$variable2 = "I am Data 2";
View::share ('variable1', $this->variable1);
View::share ('variable2', $variable2);
View::share ('variable3', 'I am Data 3');
View::share ('variable4', ['name'=>'Franky','address'=>'Mars']);
}
}
class HomeController extends BaseController {
//if you have a constructor in other controllers you need call constructor of parent controller (i.e. BaseController) like so:
public function __construct(){
parent::__construct();
}
public function Index(){
//All variable will be available in views
return view('home');
}
}
विकल्प 2:
app\Composers\HomeComposer.php
पर एक संगीतकार फ़ाइल बनाएँ: एक संगीतकार उपयोग
एनबी: app\Composers
बनाने अगर यह नहीं मौजूद है करता
<?php namespace App\Composers;
class HomeComposer
{
public function compose($view)
{
//Add your variables
$view->with('variable1', 'I am Data')
->with('variable2', 'I am Data 2');
}
}
तो फिर तुम इस
<?php namespace App\Http\Controllers;
use View;
class HomeController extends Controller{
public function __construct(){
View::composers([
'App\Composers\HomeComposer' => ['home'] //attaches HomeComposer to home.blade.php
]);
}
public function Index(){
return view('home');
}
}
आपकी प्रतिक्रिया ने वास्तव में मुझे विकल्प 1 के साथ मदद की, हालांकि यदि आप '$ user = Auth :: उपयोगकर्ता(); 'तक पहुंचने का प्रयास कर रहे हैं, और शीर्षलेख और सामग्री भाग सहित सभी ब्लेड टेम्पलेट्स में $ उपयोगकर्ता चर को पास करें ? मैंने बेसकंट्रोलर में $ उपयोगकर्ता चर डालने और फिर इसे साझा करके इसे आजमाया, लेकिन यदि मैं var_dump $ उपयोगकर्ता को सरणी में संरक्षित मानों का एक गुच्छा प्राप्त करता हूं। असल में मैं सभी टेम्पलेट्स और विचारों में ऐप में सभी ऑथ उपयोगकर्ता चरों तक पहुंचने में सक्षम होना चाहता हूं। सरल लगता है लेकिन इसे समझने के लिए घंटों बिताए हैं। –
वास्तव में यह काम किया: ' = $ उपयोगकर्ता ['नाम']; ?> 'लेकिन यह काम नहीं किया: '{{$ user-> name}}' –
@ चाड प्रिडल यह एक सरणी '{{$ उपयोगकर्ता [' नाम ']}} के लिए काम करना चाहिए, जबकि यह किसी ऑब्जेक्ट के लिए काम करता है '{{$ उपयोगकर्ता-> नाम}}' – Digitlimit
आप इसे view composers के साथ कर सकते हैं। टेम्पलेट लोड होने पर संगीतकार निष्पादित होते हैं। आप उस दृश्य के लिए अतिरिक्त कार्यक्षमता के साथ क्लोजर में पास कर सकते हैं। दृश्य संगीतकारों के साथ आप वाइल्डकार्ड का उपयोग कर सकते हैं। प्रत्येक दृश्य के लिए दृश्य संगीतकार बनाने के लिए बस *
का उपयोग करें।
View::composer('*', function($view)
{
$view->with('variable','Test value');
});
आप दस्तावेज़ों में बंद होने के बिना इसे भी बंद कर सकते हैं।
View::composer('*', 'App\Http\ViewComposers\ProfileComposer');
प्रोफ़ाइल संगीतकार वर्ग में एक रचना विधि होनी चाहिए।
देखें जब दृश्य प्रस्तुत किया जाता है तो संगीतकार निष्पादित होते हैं। लार्वेल ने रचनाकारों को भी देखा है। जब कोई दृश्य तत्काल होता है तो ये निष्पादित होते हैं।
आप सेटअप लेआउट विधि के साथ BaseController
का उपयोग करना भी चुन सकते हैं। फिर आप जो भी दृश्य लोड करेंगे, उसे सेटअपआउट विधि के माध्यम से लोड किया जाता है जो कुछ अतिरिक्त डेटा जोड़ता है। हालांकि, दृश्य संगीतकारों का उपयोग करके आप निश्चित रूप से सुनिश्चित हैं कि कोड निष्पादित किया गया है। लेकिन बेसकंट्रोलर दृष्टिकोण के साथ आपके पास अधिक लचीलापन है क्योंकि आप अतिरिक्त डेटा लोड करने को छोड़ सकते हैं।
संपादित करें: निक गुतिरेज़ द्वारा वर्णित अनुसार आप व्यू शेयर का भी उपयोग कर सकते हैं।
अंतर -> शेयर' यह है कि यह केवल तभी चलाया जाता है जब दृश्य का उपयोग किया जाता है - लेकिन 'व्यू() -> शेयर' के साथ यह कोई फर्क नहीं पड़ता कि आप क्या कर सकते हैं - उदाहरण के लिए आप किसी एपीआई कॉल में कुछ JSON लौट रहे हैं - जो एक दृश्य का उपयोग नहीं करता है । – Petecoop
Create a new Service Provider as suggested in here
कॉन्फ़िगरेशन फ़ाइल (config/app.php) करने के लिए अपने नए सेवा प्रदाता जोड़ें।
अपने नए सेवा प्रदाता का उपयोग की बूट विधि में:
View::share('something_cool', 'this is a cool shared variable');
अब आप अपने विचारों के सभी में $ something_cool का उपयोग करने के लिए तैयार हैं।
उम्मीद है कि इससे मदद मिलती है।
प्लस, यह 'आर्टिसन डाउन' के बाद 503 पेज पर एकाधिक अवसरों पर उपयोग किए जाने वाले ** चर के लिए अंतिम समाधान है। ** ऐप की वर्जन स्ट्रिंग को कैश बस्टर पैरामीटर के रूप में इंजेक्शन देना या अपडेट करने के दौरान इसे फ़ूटर में प्रदर्शित करना अन्य समाधानों के साथ एक कोर है । (इसके लिए एक एनवी वैरिएबल का उपयोग करना शायद सबसे साफ समाधान होगा) – luchaos
यह अनुमोदित उत्तर – Christophvh
से बेहतर समाधान है, मुझे लगता है कि मुख्य अंतर यह है कि उपयोगकर्ता सभी टेम्पलेट्स में * ग्लोबल * वैरिएबल उपलब्ध कराने के बारे में पूछ रहा है । स्वीकार किए गए समाधान के साथ उपयोगकर्ता को बेसकंट्रोलर का विस्तार करने और अभिभावक को कॉल करने की आवश्यकता है :: निर्माण और व्यू कॉम्पोज़र समाधान के साथ, वे चर को उपलब्ध कराने के लिए प्रत्येक नियंत्रक निर्माण विधि में व्यू :: संगीतकार को कॉल करने की आवश्यकता है। –
करके किसी भी दृश्य को संगीतकार संलग्न कर सकते हैं सत्र में यह फ़्लैश कर सकते हैं, आप कर सकते हैं इसे परिभाषित करें।एनवी फ़ाइल (स्थिर vars)
एक ही समस्या के समाधान के लिए खोज रहे हैं और Laravel दस्तावेज़ीकरण में सबसे अच्छा समाधान मिला। बस AppServiceProvider
इस तरह में View::share
का उपयोग करें:
View::share('key', 'value');
विवरण here।
इसके अलावा, आप Route.php
फ़ाइल में ऐसा कर सकते हैं:
view()->share('variableName', $variable);
- 1. लार्वेल 4 ब्लेड टेम्पलेट्स प्रलेखन
- 2. लार्वेल ब्लेड
- 3. लार्वेल में ट्विग टेम्पलेट्स 4
- 4. लार्वेल में रिश्ते और ब्लेड
- 5. लार्वेल ब्लेड टेम्पलेट
- 6. लार्वेल ब्लेड टेम्पलेट
- 7. लार्वेल नियंत्रक में वैश्विक चर
- 8. मैं लैरवेल 5 ब्लेड
- 9. लार्वेल 5
- 10. लार्वेल 5
- 11. लार्वेल 5
- 12. लार्वेल 5
- 13. लार्वेल 5
- 14. लार्वेल 5
- 15. लार्वेल 5
- 16. लार्वेल 5
- 17. लार्वेल 5
- 18. ब्लेड
- 19. पर्ल - सभी स्क्रिप्ट और मॉड्यूल में उपलब्ध वैश्विक चर?
- 20. ब्लेड टेम्पलेट में सभी एचटीएमएल से बचने वाले लार्वा
- 21. लार्वेल में कस्टम सहायक वर्ग 5.4
- 22. लार्वेल 5.2 ब्लेड में मार्ग पैरामीटर कैसे प्राप्त करें?
- 23. लार्वेल 5 मॉडल फ़ोल्डर
- 24. ट्रंकेट ... लार्वेल में कैस्केड 5
- 25. लार्वेल में उपयोगकर्ता बनाना 5
- 26. दुकान: धन्यवाद पृष्ठ पर वेरिएबल उपलब्ध हैं?
- 27. लैरावेल ब्लेड
- 28. लार्वेल 5 एलिक्सीर कम
- 29. नियंत्रक लार्वेल 5 एफपी
- 30. कोणीयजेएस + लार्वेल 5 प्रमाणीकरण
http://laravel.com/docs/5.0/views#view-composers इस और 'दृश्य() के बीच – lukasgeiter