2016-09-19 12 views
8

मुझे अपने सिर को लार्वाल्स ब्लेड लेआउट के आसपास लाने में कठिनाइयां हैं।लार्वा ब्लेड - एकाधिक लेआउट?

इंटरनेट के चारों ओर सभी उदाहरण और दस्तावेज (उदा। लार्वेल प्रलेखन: https://laravel.com/docs/5.3/blade या यूट्यूब पर वीडियो ट्यूटोरियल) केवल लेआउट के रूप में एक मास्टर.blade.php का उपयोग करें।

क्या अधिक जटिल परियोजनाओं के लिए सबसे अच्छा अभ्यास है?

  • उत्पाद
  • श्रेणी
  • ब्लॉग
  • वर्गीकरण
  • घर
  • प्रशासनिक
  • लॉगिन/प्रमाणन
  • :

    निम्न सामग्री प्रकारों को अपने प्रोजेक्ट में शामिल किए गए हैं

इन सामग्री प्रकार के सभी विभिन्न लेआउट है:

  • अलग/कोई साइडबार
  • बायीं/दायीं
  • अलग शीर्षक पर साइडबार
  • कोई/बैनर सामग्री से पहले
  • अलग/कोई मेनू
  • अलग/कोई breadcrumb

तो मैं क्या स्थिति में नहीं पता ...

  1. एक नए लेआउट फ़ाइल बनाएं (उदा /views/layouts/product.blade.php) और (@extends साथ /views/pages/product.blade.php में ("layouts.product") मेरे पेज में यह विस्तार)

... या ...

  1. केवल एक लेआउट फ़ाइल का उपयोग करें जिसमें सभी अलग-अलग प्रकार शामिल हैं और उन्हें प्रत्येक प्रकार की पृष्ठ फ़ाइल में अनुभाग के रूप में लागू करें।

यह मुझे अभी पागल बनाता है और मुझे लेआउट का उपयोग करने के लिए गीलेर के सर्वोत्तम अभ्यास की तरह कुछ भी मूल्यवान नहीं मिला।

आपकी मदद के लिए बहुत बहुत धन्यवाद!

+0

आप एक बहुत ही सामान्य लेआउट का उपयोग कर सकते हैं, और फिर अपने साइडबार और अन्य भागों के लिए कुछ 'शामिल' का उपयोग करें – Hammerbot

उत्तर

3

अच्छा अभ्यास कुछ मास्टर लेआउट का विस्तार करना है और फिर साइडबार, पाद लेख, हेडर, बैनर व्यू इत्यादि शामिल करने के लिए @include और @each का उपयोग करना है। यह वास्तव में बड़ी परियोजनाओं के लिए भी पूरी तरह से काम करता है। कभी-कभी आप @if ऑपरेटर का उपयोग करने के लिए सशर्त शामिल हैं:

@if (condition) 
    @include('some.view') 
@else 
    @include('another.view') 
@endif 
5

एक लेआउट संरचना को आसानी से एक गड़बड़ हो सकता है, यही वजह है कि यह भारी लेआउट और partials एक सहज ज्ञान युक्त फ़ोल्डर संरचना में संगठित रखने की सिफारिश की है।ऐसा करके, आप सुनिश्चित करेंगे कि भविष्य में, जब आपका ऐप बढ़ता है, तो यह साफ और व्यवस्थित रहेगा। यह इस बात पर भी निर्भर करता है कि आप किस प्रकार की परियोजना पर काम कर रहे हैं। मान लीजिए या नहीं, कभी-कभी फ़ोल्डर संरचना परियोजना से परियोजना में भिन्न होती है।

जहां तक ​​मुझे पता है, लैरवेल के लिए विशिष्ट लेआउट फ़ोल्डर को व्यवस्थित करने के तरीके पर कोई भी "सर्वोत्तम प्रथाएं" नहीं हैं, लेकिन यहां एक उदाहरण है कि मैं अपनी परियोजनाओं को कैसे व्यवस्थित करता हूं (और मेरे सभी लार्वेल ऐप्स के लिए काम किया है वहाँ):

views/ 
├── v1/ 
│ ├── master 
| | ├── master-public.blade.php 
| | ├── master-admin.blade.php 
| | ├── master-user.blade.php 
| ├── components 
| │ ├── navigation 
| | | ├── public.blade.php 
| | | ├── admin.blade.php 
| | | ├── user.blade.php 
| | ├── headers 
| | ├── footers 
| ├── views 
| | ├── home 
| | ├── chat 
| | ├── order 
| | ├── reports 
| ├── partials 
| | ├── ads.blade.php 
| | ├── sidebar.blade.php 
| ├── public 
| | ├── registration.blade.php 
| | ├── login.blade.php 
├── v2/ 
└── v2.2/ 

सबसे महत्वपूर्ण बात यहाँ उल्लेख करना है कि मेरे विचारों निर्देशिका के अंदर मैं प्रत्येक मार्ग मैं अंत मेरे एप्लिकेशन में होने प्रति एक फ़ोल्डर बना है।

इसके अलावा, मेरा मानना ​​है कि वेबपैड के यूआई के संस्करण के रूप में माता-पिता फ़ोल्डर्स होना महत्वपूर्ण है। कभी-कभी, जब UI को फिर से चालू करना एक ही निर्देशिका के अंतर्गत फ़ाइलों को सहेजता है, जो कि लंबे समय तक नहीं है क्योंकि आप उसी फ़ोल्डर में अपनी साइट के विभिन्न संस्करणों के लिए फाइलों का समुद्र समाप्त कर देंगे।

उम्मीद है कि इससे मदद मिलती है!

चीयर्स और शुभकामनाएं!

+0

वास्तव में यूआई के संस्करण को मूल फ़ोल्डर के रूप में पसंद करते हैं। क्या आप अभी भी एक साल बाद कर रहे हैं? –

+2

@PierreLeBot उत्पादन में, मैं अभी भी करता हूं। मेरे ब्लेड विचारों को व्यवस्थित करने का यह विशेष तरीका एबी परीक्षण और सामान्य रूप से हमारे यूआई को वर्जन करने के लिए वास्तव में उपयोगी साबित हुआ। अगर मैं खरोंच से शुरू करना चाहता था और इस ढांचे से चिपकना चाहता था, तो इसके लिए एक बेहतर तरीका मेरे लैरावेल प्रोजेक्ट के भीतर एक गिट सबमिशन बनाना होगा जिसमें मेरे सभी UI संबंधित सामान होंगे और प्रत्येक संस्करण को गिट टैग के साथ प्रतिबद्ध किया जाएगा। इस तरह, आपको अपने नए आकार को बहुत छोटा बनाते हुए, हर नए संस्करण में कई फाइलों को कॉपी/पेस्ट करने की आवश्यकता नहीं है। वर्तमान में, मैं अपने सभी विचार VueJS पर ले जा रहा हूं। उम्मीद है की यह मदद करेगा! – idelara

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