[संगीत खेल] एरिक Ouyang: अरे, सब लोग। वेलकम। इस इमारत गतिशील है वेब Laravel साथ क्षुधा। मेरा नाम एरिक Ouyang है। मैं सामाजिक अध्ययन का अध्ययन एक sophomore हूँ कंप्यूटर विज्ञान के क्षेत्र में एक उच्च माध्यमिक के साथ, और मुझे लगता है कि एडम्स में रहते हैं यहां हार्वर्ड हाउस। तो Laravel, इसकी सबसे मूल में, एक MVC वेब अनुप्रयोग रूपरेखा है। तो तुम लोग क्या है जैसे CS50 वित्त के साथ कर दिया गया, Laravel की अनुमति देता है कि एक रूपरेखा है आप गतिशील वेब क्षुधा का निर्माण करने के लिए। तो अगर आप कुछ होश में इसके बारे में सोच सकते हैं सामान के प्रकार का एक विस्तार के रूप में आप CS50 में कर दिया गया है वित्त, लेकिन है कि एक प्रणाली एक बहुत अधिक मजबूत है, एक बहुत कुछ होश में और अधिक सुंदर, और का एक बहुत प्रदान करता है आप के लिए कार्यक्षमता काफी जटिल निर्माण करने के लिए वेब अनुप्रयोगों। तो चलो कुछ के माध्यम से चलते हैं प्रमुख विशेषताओं में से, और फिर हम एक में डुबकी हूँ एक ब्लॉग के निर्माण के उदाहरण Laravel साथ आवेदन। पहले चीजों में से एक तो यह है कि काम के MVC के प्रकार से differentiates आप CS50 के साथ कर दिया गया है कि यह एक ORM का इंजन भी शामिल है। तो ORM के उद्देश्य के लिए खड़ा है संबंधपरक मानचित्रण। तो यह आप का निर्माण करने के लिए अनुमति देता है अमूर्त की एक परत डेटाबेस के बीच और अपने नियंत्रकों। CS50 वित्त जहां में तो विपरीत आप सीधे, प्रश्नों बनाने ORM परत करने के लिए आपको अनुमति देता है सार यह है कि दूर और बनाने से अधिक शक्तिशाली हैं कि मॉडल आप एसक्यूएल प्रश्नों के साथ सीधे कर सकते हैं। सच है कि एक और बात सहायक दाय टेम्पलेट्स है। तो अगर आप CS50 वित्त में सूचना देंगे, आप बहुत सारी चीज़ें नए सिरे से लिखना खत्म होता है, स्थानों पर जहां आप संभवतः सकता है आप करने में सक्षम नहीं हैं, चीजों को पुन: उपयोग। तो यहाँ Laravel में, आप क्या उपयोग कर सकते हैं ब्लेड टेम्पलेट इंजन के रूप में जाना जाता है एक मास्टर लेआउट बनाने के लिए। और वहाँ से, आप वारिस कर सकते हैं इसलिए कि उप-टेम्पलेट्स वास्तव में यह कर सकते हैं भीतर तत्वों में शामिल बड़ा आधार टेम्पलेट है। प्रवासन। तो इस पर एक काफी मानक सुविधाओं है सबसे आधुनिक वेब अनुप्रयोग चौखटे। तो यह आप का प्रतिनिधित्व करने के लिए अनुमति देता है कोड में डेटाबेस स्कीमा परिवर्तन। इतना कहने के लिए जा रहा बिना, phpMyAdmin, आप वास्तव में इन माइग्रेशन बना सकते हैं आप डेटाबेस का प्रतिनिधित्व करते हैं जहां स्कीमा सीधे कोड में बदल जाता है। और यह आपको विशेष रूप से to-- की अनुमति देता है आप काम कर रहे कई लोगों को है, अगर एक ही वेब application-- पर इन परिवर्तनों को ट्रैक, GitHub, या कुछ अन्य भंडार में कहते हैं। तो यह वास्तव में मददगार है और जरूरत mitigates कहते हैं, के लिए, एसक्यूएल उदासीनता का एक बहुत चारों ओर से गुजरती हैं। और अंत में, संगीतकार है वास्तव में, वास्तव में कुछ उपयोगी कि आप अन्य उपयोग करने के लिए अनुमति देता है लोगों के कोड भयानक बातें करते हैं। तो Laravel के रूप में संरचित कई संगीतकार संकुल। तो अगर आप लाना चाहते थे कहना है कि अगर एक प्रमाणीकरण पैकेज में या आप कुछ में लाना चाहते थे अगर जनरेटर स्क्रिप्ट या एक व्यवस्थापक की तरह इंटरफेस है, आप प्लग और खेल सकते हैं संगीतकार के साथ उन घटकों। तो चलो शुरू हो जाओ। आप से किसी भी सवाल हम पहले लोगों को आरंभ करने के लिए? कोई सवाल नहीं? बिंदास। तो पहला कदम है संगीतकार की स्थापना। तो संगीतकार के लिए आपको अनुमति देता है इन निर्भरता का प्रबंधन, यह Laravel ढांचा है कि क्या या किसी अन्य तीसरे पक्ष के विस्तार। पहले आदेश की अनुमति देता है यदि आप संगीतकार डाउनलोड करने के लिए और दूसरा आदेश करने के लिए आपको अनुमति देता है अपने स्थानीय बिन फ़ोल्डर में यह कदम ताकि आप संगीतकार चला सकते हैं सीधे टर्मिनल के माध्यम से। उसके बाद, आगे बढ़ो और एक नए Laravel परियोजना बनाएँ। हम वास्तव में करने के लिए जा रहे हैं कुछ उदाहरण कोड का उपयोग मैं एक साथ डाल दिया है कि इस ब्लॉग बनाने के लिए। लेकिन अगर आप से शुरू कर रहे हैं खरोंच, आप इस आदेश का प्रयोग करेंगे यहाँ, संगीतकार बनाने परियोजना, laravel तो laravel स्लेश, और अपनी परियोजना का नाम है। और उस में शामिल होंगे सभी वितरण कोड एक नए Laravel परियोजना शुरू करने के लिए। अपने CS50 अंतिम परियोजनाओं के लिए तो, तुम हूँ शायद उस आदेश का उपयोग करना चाहते हैं। लेकिन हम इस के साथ शुरू करने जा रहे हैं। तो अगर आप एक बार किया है , आप करने जा रहे हैं कि एक काफी व्यापक संख्या blog50 में फ़ाइलों की। तो चलो बस के माध्यम से चलते हैं इन घटकों में से कुछ। यदि आप इस मार्ग पर नोटिस देंगे निर्देशिका, एक app फ़ोल्डर नहीं है। एप्लिकेशन को फोल्डर के अंदर, वहाँ एक जोड़े को उपयोगी फ़ोल्डरों। साथ शुरू करने के लिए ध्यान दें इस config फ़ोल्डर है। तो यह ऊपर कैसे सेट कृपया अपने वेब अनुप्रयोग है कहते हैं, लोगों को प्रमाणित करने के लिए जा रहे हैं या नकदी चीजें या डेटाबेस से कनेक्ट। और क्या सच है सहायक है कि Laravel आप को अलग सेट करने देता है विकास के वातावरण। तो क्या हम यहाँ किया है अगर है हम स्थानीय फ़ोल्डर के नीचे जाने, एक database.php फ़ाइल नहीं है। और तुम यहाँ नोटिस हूँ कि हम एक MySQL कनेक्शन है कि सेट अप व्यक्तियों कनेक्ट करने के लिए अनुमति देता है है कि सर्वर के लिए सीधे CS50 उपकरण पर। और हम एक डेटाबेस से कनेक्ट कर रहे हैं मैं स्थापित कि Blog50 बुलाया। तो चलो वास्तव में आगे चलते हैं और इस का काम संस्करण चलाने बस क्या की भावना लाने के लिए हम निर्माण कर रहे हैं कि आवेदन की तरह लग रहा है। तो मुझे लगता है की एक प्रति है इस Blog50 पूरा किया। तो Laravel वास्तव में एक सर्वर में बनाया गया है आप सीधे चला सकते हैं कमांड लाइन से। तो इस के समान है PSet जब आप वास्तव में से पहले सी में अपने खुद के सर्वर का निर्माण इसलिए वे इतने में एक निर्माण किया है आप अपने Laravel क्षुधा चला सकते हैं सीधे कमांड लाइन से। हम PHP कारीगर करते हैं तो, इस की सेवा एक विकास सर्वर का शुभारंभ करेंगे पोर्ट 8000 पर। हम स्थानीय होस्ट करने के लिए जाना है तो 8000, आप अरे, उस पर ध्यान देंगे। हम अपने ब्लॉग और चल रहा है। तो Laravel यहाँ पैदा कर रहा है अपने ब्लॉग के सामने पृष्ठ। बहुत ही साधारण आवेदन। लेकिन कुछ नहीं है वास्तव में निफ्टी सुविधाओं यह हुड के नीचे प्रदान करता है। तो ब्लॉग आवेदन की सीधी। हम एक पद सृजित करना चाहता था, हम चाहते हैं कि बटन पर क्लिक कर सकते हैं। हम, "अरे, सब लोग कह सकते हैं। यह एक बहुत मजेदार है उदाहरण के लिए सेमिनार, "। और नीचे यहाँ कुछ लिखें। यहां पाठ। हम सबमिट करें क्लिक करते हैं, तुम हूँ सूचना है कि हमारे नए ब्लॉग पोस्ट करने के लिए जोड़ दिया गया है ब्लॉग के सामने पृष्ठ। हम यहाँ वापस जाओ, तुम नोटिस हूँ कि पहले से ही कुछ टिप्पणी कर दिया गया है ब्लॉग पर। हम नीचे स्क्रॉल, तो आप करेंगे तो जोनाथन टैन कहते हैं कि नोटिस वह बहुत ही इस पद द्वारा intrigued गया था। तो हम कैसे वस्तु में जाना होगा संबंधपरक मैपिंग की अनुमति देता है आप में इन संबंधों को ऐसा करने के लिए के रूप में अच्छी तरह से एक काफी सहज तरीका है। बिंदास। कार्यक्षमता के बारे में किसी भी सवाल हम का निर्माण करने जा रहे हैं क्या? बिंदास। तो चलो वास्तव में बाहर के साथ शुरू करते हैं डेटाबेस तालिकाओं का निर्माण। तो, CS50 वित्त में आपको याद है कि उपयोगकर्ताओं के लिए एक मेज एक साथ रखा साथ ही आपके पोर्टफोलियो में शेयरों। हम पहले भी उल्लेख के रूप में तो, क्या हम Laravel में उपयोग माइग्रेशन के रूप में जाना जाता है कुछ है। हम करने के लिए वापस जाने के लिए तो अगर यहाँ वितरण कोड, है कि पहले आदेश Laravel आपको प्रदान करता है मददगार इस माइग्रेट आदेश है। इसलिए हम PHP कारीगर माइग्रेट कर सकते हैं: बनाते हैं। तो यह हमें एक माइग्रेशन बनाने के लिए अनुमति देता है। और फिर हम चाहते हूँ एक माइग्रेशन बनाने के लिए , create_posts_table बुलाया जो हो रहा है होने के लिए जहां हम जा रहे हैं हमारे ब्लॉग पोस्ट भंडारण हो। और अगर आप इसे चलाता है कि यहाँ पर ध्यान देंगे कुछ कोड के माध्यम से कहा कि वास्तव में के साथ एक फ़ाइल उत्पन्न करता है उस पर एक समय टिकट। , हम चले और डाटाबेस पर देखने के लिए तो अगर हम Migrations के तहत नोटिस देंगे इसे बनाया है कि एक हमारे लिए रिक्त फाइल जो नाम के साथ बॉयलरप्लेट कोड है हम निर्दिष्ट, पदों टेबल बनाए। और यह दो कार्य किया है। ऊपर हम जब चलाना चाहते क्या है माइग्रेशन डेटाबेस के लिए लागू किया जाता है। और नीचे हम क्या करने जा रहे हैं क्या है हम एक प्रवास रिवर्स करने के लिए चाहते हैं। तो यहाँ के बाहर शुरू करते हैं इस प्रवास लिखने के साथ। तो एक सहायक वर्ग नहीं है Laravel में स्कीमा बुलाया। इसलिए हम स्कीमा :: बनाने को चलाने के लिए जा रहे हैं। और हम बनाने के लिए जा रहे हैं एक मेज पदों बुलाया। और यहाँ हम एक समारोह का उपयोग इस लागू होते हैं। और यहाँ के भीतर, हम वास्तव में करने के लिए जा रहे हैं हमारे टेबल की सामग्री को निर्दिष्ट करें। हम एक आईडी बनाने के लिए जा रहे हैं, जो ऑटो incrementing है। इसके अलावा, हम जा रहे हैं एक क्षेत्र बनाने के लिए अपने ब्लॉग पोस्ट के शीर्षक का प्रतिनिधित्व करता है। हम यह भी एक क्षेत्र बनाने के लिए जा रहे हैं हमारे ब्लॉग पोस्ट के पाठ के भंडारण के लिए। और अंत में, हम जा रहे हैं कुछ timestamps के स्टोर करने के लिए हमारी पोस्ट बनाया गया था जब के लिए और इसे अद्यतन किया गया था। और नीचे के लिए, यह काफी आसान है। हम सब करना चाहते बूंद है हम बना लिया है कि मेज। फाडू। कोई सवाल? तो अब हम आगे जाने के लिए अगर and-- दरअसल, स्थानीय मेजबान, मुझे जैसा कि हम पहले क्या था हटा दें। डेटाबेस में जाओ। मुझे लगता है हम पहले क्या था नष्ट करने के लिए जा रहा हूँ। इस ड्रॉप और बनाने एक नए डेटाबेस Blog50। तो अब क्या जादुई हिस्सा यहाँ है कि हम सीधे इन माइग्रेशन आवेदन कर सकते हैं आदेश पंक्ति का उपयोग करने के लिए डेटाबेस ओजार। इसलिए हम PHP कारीगर माइग्रेट करते हैं, अरे, उस पर ध्यान देंगे। यह माइग्रेशन टेबल बन रहा है, जो हम एक बिट में पर एक नज़र रखना होगा, और यह इस पहली प्रवास लागू किया है। हम Blog50 पर देखने के लिए तो, तुम नोटिस हूँ कि यह हमारे लिए दो टेबल बनाया है। सबसे पहले इस माइग्रेशन तालिका है। हम इस ब्राउज़ कर ऐसा है तो आप उस पर ध्यान देंगे इस तालिका काफी सरल है। यह सिर्फ अरे, यह कहा जाता है। हम इस प्रवास लागू किया है। हम वापस जाने के लिए और पदों पर दिखेगा। आप संरचना नोटिस हूँ कि हम यह पूछा था कि क्या वास्तव में है। हम एक ऑटो incrementing आईडी है। हम संचय के लिए एक स्ट्रिंग है शीर्षक है, और एक पाठ क्षेत्र सामग्री के भंडारण के लिए। फाडू। बिंदास। माइग्रेशन के बारे में किसी भी सवाल काम, हम उन्हें कैसे लागू कर सकते हैं? ना? बिंदास। तो अब हम आगे जाने के लिए जा रहे हैं और वास्तव में मॉडल बनाने के लिए। इसलिए हम एक पदों मॉडल बनाना चाहते हैं डेटाबेस की एक अमूर्त भंडार। तो बजाय MySQL के प्रश्नों कर रहा से सीधे, हम बनाने जा रहे हैं। इसलिए हम एक बनाने के लिए है यहाँ बुलाया मॉडल में फ़ोल्डर। और यहाँ के अंदर है, हम करने जा रहे हैं post.php नामक एक फाइल बना सकते हैं। इस PHP फ़ाइल के अंदर, हम बनाने के लिए जा रहे हैं वाक्पटु फैली एक वर्ग है जो पोस्ट। वाक्पटु ORM का नाम है Laravel प्रदान करता है कि इंजन। और यहाँ में, हम उम्मीद करते हैं कि हो सकता है आप वास्तव में कुछ कोड लिखने की जरूरत है। हम कुछ लिखने जा रहे हैं बाद में सहायक कार्यों। बॉक्स से बाहर लेकिन, यह पहले से ही होगा डेटाबेस में क्या है पहचान और हम कहते हैं, पाठ का उपयोग कर सकते हैं हमारे ब्लॉग पोस्ट या शीर्षक से, और सीधे के साथ सामान बनाने जो भी बहुत ज्यादा कोई कोड। तो उस जादुई घटकों में से एक है। और इस वर्ग में एक बार हवा अधिक पूरी तरह से विकसित कर रहा है, हम के बारे में जानकारी शामिल करेंगे क्या यह टिप्पणियां इसलिए, से संबंधित है। इसके अलावा एक समारोह बनाने इसलिए हम वास्तव में कर सकते हैं सीधे यूआरएल मिलता है एक ब्लॉग पोस्ट पेज की। बिंदास। उस के बारे में कोई सवाल? नं. बिंदास। तो अब हम अपने मॉडल है, एक बार हम है कि एक नियंत्रक बनाना चाहते हैं इन मॉडलों के साथ इंटरफेस करने में सक्षम है, और बाद में डेटाबेस। हम एक नज़र में ले तो अगर BlogController, तुम हूँ वहाँ नहीं है कि नोटिस यहाँ अभी बहुत कुछ। सब वहाँ एक सूचकांक समारोह है कि होम पेज उत्पन्न करता है, लेकिन कुछ भी बिना अभी तक वहाँ प्रदर्शित करने के लिए। पहला समारोह तो हम बनाने जा रहे हैं हमें की अनुमति देता है कि एक है एक ब्लॉग पोस्ट बनाने के लिए। इसलिए हम एक घोषित करने के लिए जा रहे हैं newPost बुलाया नए कार्य करते हैं। और यहाँ बस के अंदर, हम जा रहे हैं इस पेज के लेआउट स्थापित करने के लिए एक संस्करण प्रस्तुत करना हो, आप CS50 से याद करते हैं, blog.new नामक इस टेम्पलेट का जो हम एक छोटा सा में बनाने के लिए जा रहे हैं। आप लाइन छह पर यहाँ नोटिस हूँ कि हम, लेआउट इस चर निर्दिष्ट। और हम एक नज़र रखना अगर दृश्य फ़ोल्डर में, एक लेआउट फ़ोल्डर, जो वहाँ एक बहुत ही बुनियादी HTML फ़ाइल भी शामिल है। और नोट के, तुम नोटिस हूँ हम इस कंटेनर है कि यहाँ सामग्री है कि पैदावार। हमारे टेम्पलेट के अंदर तो हम क्या करने जा रहे हैं होने जा रहा है क्या बना रहा है इस लेआउट के भीतर सीधे एवजी। तो हम प्रस्तुत करना चाहता हूँ कि कहा एक टेम्पलेट blog.new बुलाया। लेकिन ब्लॉग के अंदर, वहाँ नहीं अभी तक इस नए टेम्पलेट। इसलिए हम एक बनाने के लिए जा रहे हैं फ़ाइल new.blade.php बुलाया। इस Laravel बताता है कि इस PHP फ़ाइल चाहिए साथ गाया जा ब्लेड टेम्पलेट इंजन। तो यह एक काफी है सीधा फ़ाइल। यह है जिसके द्वारा फार्म होने जा रहा है हम वास्तव में एक ब्लॉग पोस्ट में जोड़ें। यहाँ से जादू तो विरासत अरे, कि है। हम चाहते हैं कि निर्दिष्ट करना चाहते हैं अनुभाग, सामग्री अनुभाग यहाँ, जो चित्रित किया गया है section औरstop द्वारा। तो क्या हुआ अगर बीच में यहाँ के लिए जा रहा है मास्टर लेआउट में प्रतिस्थापित किया। और यहाँ हम क्या करना चाहते है बहुत आसानी से एक नए HTML फ़ाइल बनाएँ। चलो बस एक त्वरित शीर्षक जोड़ दें। एक ब्लॉग पोस्ट जोड़ें। और यह के भीतर, हम कर रहे हैं एक फार्म बनाने के लिए जा रहा है। यह फार्म एक कार्रवाई किया जा रहा है। और यह कुछ होने जा रहा है हम बाद में स्थानापन्न कि, और हम देखेंगे कि कैसे मार्ग यहाँ में फिट बैठता है। लेकिन हम अभी के लिए परिभाषित करने के लिए जा रहे हैं इस मार्ग के साथ एक यूआरएल के लिए चला जाता है createPost से। और फिर यह जा रहा है विधि पद के लिए है। यहां के भीतर, हम जा रहे हैं दो क्षेत्रों के लिए है। Div class = "फार्म-समूह"। हम बूटस्ट्रैप सीएसएस पुस्तकालय का उपयोग कर रहे हैं विनय ट्विटर द्वारा प्रदान की गई। तो हम इनमें से दो को बनाने के लिए जा रहे हैं। तो यह पहला निवेश है जा रहा शीर्षक होना करने के लिए। तो इनपुट नाम = "शीर्षक"। Class = "formcontrol"। Type = "पाठ"। मैं एक प्लेसहोल्डर = "शीर्षक" जोड़ने के लिए जा रहा हूँ। और फिर दूसरा एक है एक पाठ क्षेत्र होने जा रहा। = "सामग्री" नाम। Class = "formcontrol"। और प्लेसहोल्डर = "यहाँ लिखें"। हम वहाँ जाओ। अंत में, हम करने जा रहे हैं एक त्वरित सबमिट बटन जोड़ने। Type = "भेजें" वर्ग = "BTN BTN-प्राथमिक"। तो ये सब कर रहे हैं बूटस्ट्रैप की सुविधाओं को इतना इस रखी जा सकता है है कि एक तरह से बाहर उपयोगकर्ता की चपेट में, बल्कि नग्न एचटीएमएल से। तो हम यहाँ नियंत्रक से परिभाषित किया है। हम एक बहुत ही साधारण दृश्य में परिभाषित किया गया है। लेकिन क्या याद आ रही है संयोजी ऊतक। इस बिंदु पर तो, Laravel कैसे कोई जानकारी नहीं है हम वास्तव में करने के लिए जा रहे हैं इस नियंत्रक का उपयोग। तो यह एक में परिभाषित किया गया है फ़ाइल routes.php बुलाया। और अभी, हम एक मार्ग है। जो कि हम जब जाना है इस वेबसाइट के लिए घर पथ, इसे प्रस्तुत करने जा रहा है सूचकांक नियंत्रक। यहाँ तो हम को लागू करना है क्या जरूरत है हमारे लिए एक नया मार्ग एक पोस्ट बनाने के लिए। इसलिए हम इस विधि का उपयोग निर्दिष्ट करता है, जो मिलता है एक उपयोगकर्ता की कोशिश करता है कि यह विशेष रूप से page-- मिल पोस्ट नई page-- स्लेश हम क्या करने जा रहे हैं कहा जाता नियंत्रक का उपयोग किया जाता है BlogController नई पोस्ट। हम अभी बनाया है कि एक। और फिर हम जा रहे हैं newPost के रूप में इसे उर्फ। हम एक और बनाने के लिए जा रहे हैं एक छोटा सा में कार्य करते हैं। लेकिन तहत यहां क्या हो रहा है "के रूप में" कुंजी क्या है हम भीतर स्थानापन्न कर सकते हैं हमारे ब्लेड टेम्पलेट्स। तो अब के लिए, चलो वास्तव में भी मार्ग का कहना है। इसलिए हम भी जा रहे हैं एक नियंत्रक बनाने के लिए इतना है कि हम इन पदों बना सकते हैं। तो अगर पेज पोस्ट करने के लिए एक उपयोगकर्ता पदों हम क्या करने जा रहे हैं, नए स्लेश एक नियंत्रक का उपयोग करता है हम शीघ्र ही बनाने के लिए जा रहे हैं createPost पर BlogController बुलाया। और हम उर्फ ​​करने के लिए जा रहे हैं createPost रूप के साथ इस। बिंदास। कोई सवाल? बिंदास। तो चलो हम अब तक क्या किया चलाते हैं। हम PHP कारीगर करते हैं तो, अगर की सेवा हम त्रुटियों के बहुत देखेंगे। हम एक हैं तो ऐसा लगता है मार्गों पर सिंटैक्स त्रुटि 27 लाइन। आह। अर्धविराम गुम। तो हम 8000 के लिए जाना है, आप यहां अभी तक कुछ भी नहीं देखेंगे। तो यह डिफ़ॉल्ट मुख पृष्ठ है। हम पोस्ट करने के लिए जाना है लेकिन हे, नई स्लेश। यह हम अभी बनाया है कि फार्म हो जाएगा। फिलहाल, हम नहीं कार्यक्षमता लागू हम प्रेस जब बटन सबमिट करें। हम पर क्लिक करते हैं तो जमा करें बटन, यह एक त्रुटि को चलाने के लिए जा रहा है। लेकिन हम कोड के लिए जा रहे हैं कि अब ठीक है, ठीक क्या हम जब एक उपयोगकर्ता क्या करना चाहते हैं इस प्रपत्र प्रस्तुत करें। तो चलो करते हैं। वापस नियंत्रकों फाइल करने के लिए जाओ। हम क्या करने जा रहे है इस नए समारोह को लागू कि हमें एक पोस्ट बनाने के लिए अनुमति देता है। नई समारोह की घोषणा। सार्वजनिक समारोह createPost। और इस समारोह में एक होने जा रहा है अधिक से अधिक परिष्कृत थोड़ा सा क्या हम पहले था। लेकिन आप हम नहीं कर रहे हैं कि यहाँ देखेंगे वास्तव में किसी भी एसक्यूएल लिखने के लिए जा रहा है। ORM, वाक्पटु ORM, अनुमति देने के लिए जा रहा है हमें कुछ ऐसा करने के लिए तरीके एक और अधिक सुंदर तरीका है। तो हम एक नया पद सृजित करने के लिए जा रहे हैं। और यहाँ हम कर रहे हैं एक नई वस्तु instantiating मॉडल से है कि हम सिर्फ बनाया, डाक मॉडल। और हम क्या करने जा रहे हैं सेट है इस का उपयोग कर कुछ के शीर्षक विशेषता हम सर्वर से मिलता है। तो इस के समान है क्या हम CS50 वित्त में पहले था हम क्या होता है, जहां सुपर का उपयोग कर ग्लोबल पोस्ट शीर्षक के लिए देख रहे हैं। तो Laravel कुछ स्वच्छता प्रदान करता है और whatnot इस सहायक समारोह का उपयोग। इसलिए हम इस बजाय उपयोग करना पसंद करेंगे पीएचपी से यह बहुत ही बुनियादी कच्चे रूप की। और फिर हम क्या करने जा रहे हैं सेट है इनपुट के लिए यह की सामग्री सामग्री मिलता है। हम वास्तव में रैप करने के लिए जा रहे हैं एक उपयोगी समारोह में इस कि पीएचपी nl2br कहा जाता है, जो प्रदान करता है नई लाइनें, एनएलएस, बीआरएस में, टूटता बदल जाता है हम वास्तव में हो सकता है इतना है कि यह भीतर अलग पैराग्राफ। और अंत में हम जा रहे हैं क्या ऐसा करने के लिए इस पोस्ट को बचाने के लिए है। तो हम समारोह कॉल इस मॉडल को बचाने के लिए। हम पोस्ट को बचाने के लिए जा रहे हैं। और हम क्या करने जा रहे हैं अंत में क्या विशेष रूप से उपयोगकर्ता अनुप्रेषित है हम करने जा रहे हैं जो रूट करने के लिए viewPost द्वारा शीघ्र ही उर्फ ​​पैदा करते हैं। और हम बहस में पारित करने के लिए जा रहे हैं आईडी, इस नए पद का आईडी किया जा रहा है। फाडू। तो अब हम वास्तव में जाना है और इस चलाते हैं। हम एक नई पोस्ट जोड़ने के लिए जा रहे हैं। इस संगोष्ठी 50 है कहते हैं। और यकीन है, का कहना है। Asdl। व्हाटेवर। सामग्री के कुछ प्रकार की। और सबमिट करें। और हम उस पर ध्यान देंगे, अरे। मार्गों को परिभाषित नहीं किया। लेकिन हम phpMyAdmin पर एक नज़र रखना और अगर चाहे या नहीं हमारे समारोह के लिए देखो कुछ भी नहीं किया। Blog50 पदों को देखो। हम अरे, उस पर ध्यान देंगे। वास्तव में, हम सिर्फ इतना है कि ब्लॉग बना था निर्दिष्ट के रूप में timestamps के साथ पोस्ट। तो अब वापस जाने के लिए और वास्तव में बना देना हमारे नियंत्रक में यह अन्य समारोह, विशेष रूप से viewPost नियंत्रक। इसलिए सार्वजनिक समारोह viewPost। यहाँ तो हम क्या करेंगे, के बजाय खाली कोष्ठकों होने के, हम की आईडी में पारित करने के लिए चाहता हूँ हम बना रहे हैं कि पोस्ट। और यहाँ से हम क्या करने जा रहे हैं वास्तव में इसके लिए डेटाबेस क्वेरी है। इसलिए हम पोस्ट करते हैं, कहा जाता है एक समारोह में नहीं है कि हमें आईडी के आधार पर यह प्रश्न करने की अनुमति देता है का पता लगाएं। विशेष रूप से, वास्तव में, हम करने जा रहे हैं कहा जाता है कि इस का एक वैकल्पिक संस्करण का उपयोग हमें की अनुमति देता है या फिर विफल, इस समारोह से बाहर छोड़ने के लिए, आईडी अगर एक अपवाद फेंक हम मौजूद नहीं है में से गुजरती हैं। और फिर हम कुछ करने के लिए जा रहे हैं जैसा कि हम पहले क्या किया था के समान जहां हम सामग्री सेट इस पेज का होना इस नए विचार का गाया संस्करण हम blog.view बनाने के लिए जा रहे हैं जो। और हम में पारित करने के लिए जा रहे हैं it-- सिर्फ प्रस्तुत करना CS50 में पसंद चर का एक शब्दकोश function--। इस साहचर्य सरणी की चाबी टेम्पलेट के भीतर चर हो जाते हैं। तो हम बाद पोस्ट करने के लिए जा रहे हैं। तो परोक्ष रूप से पद से गुजरती हैं कि हम डेटाबेस से पूछे दिया है। । अब हम क्या करने जा रहे हैं ऐसा इस दृश्य बना है हम वास्तव में देख सकते हैं कि इतने हम का निर्माण किया है कि ब्लॉग पोस्ट। इसलिए हम एक बनाने के लिए जा रहे हैं फ़ाइल view.blade.php बुलाया। तो इस टेम्पलेट के अंदर, हम क्या करने जा रहे हैं एक साधारण पृष्ठ एक साथ रखा है कि हमें सामग्री प्रदर्शित करने की अनुमति देता है। हम अनुभाग करते हैं तो, उस सामग्री से पहले है। बंद करो। और हम क्या जा रहे हैं यहां के भीतर करने के लिए है इस पृष्ठ प्रदर्शित करने के लिए कुछ HTML लिखें। इसलिए हम एक फैंसी साथ यह लपेटो करने के लिए जा रहे हैं नई एचटीएमएल 5 तत्व अनुच्छेद बुलाया। और यहाँ में, हम जा रहे हैं एक शीर्षक है, जहां के लिए है हम तो बस एक H1 लिए जा रहे हैं, जो पोस्ट शीर्षक भी शामिल है। यहाँ तो, हम इस पर नजर डालें तो डबल घुंघराले ब्रेस अंकन, यह अनिवार्य रूप से करना होगा पीएचपी पोस्ट शीर्षक गूंज। तो यह एक उपयोगी आशुलिपि है Laravel हमें प्रदान करता है। इसलिए हम उपयोग करने के लिए जा रहे हैं बजाय इस अंकन। और यहाँ, हम भी करने जा रहे हैं यह की सामग्री बाहर प्रिंट। और यहाँ में, हम जा रहे हैं पोस्ट सामग्री करने के लिए। और हम क्या कर रहे हैं तल पर नीचे ऐसा करने के लिए जा रहा एक पाद लेख बना है। और पाद में, हम करने जा रहे हैं इस पोस्ट किया गया था जब पहली बार प्रदर्शन। इसलिए इस पर तैनात में बनाया गया था। और Laravel एक बहुत अच्छा उपयोग करता है तारीख पुस्तकालय कार्बन बुलाया। तो क्या हम वास्तव में बुलाया कुछ कर सकते हैं आप पहले देखा था जो difforHumans,। हम तैनात है। यह कहना होगा जैसे, पाँच सेकंड पहले। तो यह एक बहुत अच्छा है Laravel की कार्यक्षमता। और अंत में, हम जा रहे हैं इस पाद लेख बंद करने के लिए। तो अब हम करने के लिए वापस जाने के लिए अगर मुख पृष्ठ हम जा रहे हैं यहां अभी तक क्योंकि कुछ भी नहीं देखने के लिए हम होम पेज कोडित नहीं किया है। लेकिन हम स्लेश एक पोस्ट करने के लिए जाना है, हम एक अपवाद को देखने के लिए जा रहे हैं। किसी को भी पता है क्यों हम एक अपवाद देखते हैं? हम क्या याद कर रहे हैं? किसी भी विचार? तो हम क्या क्या किया पहले हमारे लिए वास्तव में हम करने के लिए मिलता है कि कैसे परिभाषित करने के लिए विशेष नियंत्रकों? अध्यक्ष 1: मार्ग? एरिक Ouyang: हाँ। इसलिए हम अभी भी मार्ग को परिभाषित किया है। इसलिए हम routes.php करने के लिए यहाँ वापस जाओ। आपको लगता है कि हम नोटिस देंगे वास्तव में परिभाषित नहीं किया है हम कैसे प्राप्त करने के लिए जा रहे हैं इस नियंत्रक करने के लिए। तो अब हम इस मार्ग को परिभाषित करने के लिए जा रहे हैं। यह काफी सरल है जैसा कि हम पहले क्या किया था के समान है। लेकिन हम यहाँ सूचना के लिए जा रहे हैं क्या है हम एक प्लेसहोल्डर के लिए जा रहे हैं। हम route.get स्लैश पद आईडी करते हैं तो। तो आईडी अब करने के लिए क्या हो रहा है है नियंत्रक में पारित किया जाए। यह प्रयोग हो रहा है नियंत्रक कि हम सिर्फ बनाई गई हैं, viewPost पर BlogController। और हम करने जा रहे हैं viewPost रूप उर्फ ​​इस। फाडू। तो अब हम इस मार्ग को बनाने के लिए जा रहे हैं। तो अब हम यहाँ जाओ अगर और इस पृष्ठ ताज़ा, वास्तव में हम अपने नए ब्लॉग पोस्ट किया है। तो यह है कि हम पहले बनाया है। बहुत साधारण पृष्ठ, लेकिन प्रदर्शित करता है हम अभी बनाया है कि ब्लॉग पोस्ट। बिंदास। और हम वास्तव में पूरे के माध्यम से जाना है एक नए ब्लॉग पोस्ट बनाने की प्रक्रिया, हम चाहते हैं कि सब कुछ नोटिस देंगे ठीक से पुनर्निर्देश। मैं कहना है, "हाय। मैं जोनाथन टैन हूँ। " "यह मेरा ब्लॉग पोस्ट है। कहते हैं," और सबमिट करें, इस बनाएगा आईडी 2 के साथ इस नए ब्लॉग पोस्ट, हम क्या था से जो वेतन वृद्धि पहले से और ठीक से प्रदर्शित करता है यह। बहुत बढ़िया। कोई सवाल? हाँ? अध्यक्ष 2: Laravel संभाल करता है स्वच्छता और आप के लिए सब कुछ? एरिक Ouyang: हाँ। तो हम पहले भी जब जब देखा हम इनपुट पेट के पेट के लिए मिला कि किसी भी एसक्यूएल sanitates इंजेक्शन और whatnot हम अगर प्रदर्शन करने के लिए चाहते हो सकता है कि हम वेबसाइट के एक दुर्भावनापूर्ण उपयोगकर्ता हैं। तो Laravel एक बहुत संभालती पर्दे के पीछे इस बात का। अच्छा सवाल है। तो चलो घर पृष्ठ पर एक नज़र रखना। हम पहली बार के लिए वापस जाओ तो अगर मुख पृष्ठ के लिए नियंत्रक, आप इसे नोटिस हूँ कि बहुत यहाँ नहीं करता है। आप हम नहीं कर रहे हैं कि नोटिस देंगे इस नियंत्रक में गुजर रहा है कुछ भी विशेष रूप से उपयोगी है। यह सिर्फ इस सूचकांक फ़ाइल है। तो चलो में पारित सहायक यह कुछ। और विशेष रूप से, हम कर रहे हैं पदों में पारित करने के लिए जा रहा है। और Laravel हमें की अनुमति देता है , सब पोस्ट करने के लिए जो हमें सभी पोस्ट प्राप्त करने के लिए अनुमति देगा। अब हम वापस करने के लिए जाना अगर index.php, आप अरे, देखेंगे। यहाँ कुछ नहीं अभी तक। लेकिन हम चाहते हैं कि क्या यहाँ करने के लिए वास्तव में के माध्यम से पुनरावृति है, पदों पर एक foreach पाश करते हैं कि हमें पदों बाहर मुद्रित करने के लिए अनुमति देता है। तो जैसा कि foreach पदों हम क्या करना चाहते पद, सामग्री बाहर प्रिंट है ब्लॉग पोस्ट की। लेकिन तुम नोटिस हूँ एक बात यह है कि हम वास्तव में उस कोड के सबसे लिखा पहले से ही view.blade.php में। तो क्या हम वास्तव में क्या करने जा रहे हैं क्या है ब्लेड का एक अच्छा सहायक सुविधा का उपयोग और इस आम कोड बाहर कारक। तो हम यहाँ जाओ। हम इस सामग्री ले जा रहे हैं यहीं है, और हम क्या करने जा रहे हैं एक नया फ़ोल्डर बना है। चलो बस partials कहते हैं। और यहाँ में, हम जा रहे हैं एक post.blade.php बनाने के लिए। यहाँ तो, हम में से बाहर का रास्ता सकारात्मक असर जो हम इन पदों प्रदर्शित करना चाहते हैं। और यहाँ हम बजाय क्या करेंगे वास्तव में सीधे कि एचटीएमएल रहा है, हम इस निर्देश का उपयोग करने के लिए जा रहे हैं कहा जाता है blog.partials.post शामिल हैं। और हम यहाँ क्या करने जा रहे हैं पेज की पोस्ट में पारित है। तो अब हम यहाँ वापस जाने के लिए करते हैं, तो हम करेंगे कार्यक्षमता है कि अभी भी नोटिस समान। लेकिन अब हम इस के लिए है , इस HTML कोड बाहर सकारात्मक असर। इसलिए हम सूचकांक में इसका इस्तेमाल कर सकते हैं। यहाँ तो, यह बहुत स्पष्ट है। हम सब करना शामिल है blog.partials.post और सरणी। और कहीं के लिए इससे पहले, हम बाद पोस्ट करते हैं। तो अब हम करने के लिए वापस जाने के लिए अगर होम पेज, हम अरे, यह देखेंगे। हम सभी की एक सूची है हम पहले था कि ब्लॉग पोस्ट। हम कुछ "" यदि जोड़ने के लिए चाहते हो सकता है शर्तों और "और" की स्थिति इसलिए हमारे पास नहीं है कि अगर ब्लॉग पर कुछ भी, हम उपयोगी कुछ प्रदर्शित करना चाहते हैं। अरे, की तरह। ब्लॉग पर अभी तक कोई सामग्री नहीं है। और तुम लोग वास्तव में देखो GitHub पर वितरण कोड, आप हम ऐसा कैसे का एक उदाहरण देखेंगे। बिंदास। कोई सवाल? हाँ। अध्यक्ष 2: मैं सिर्फ अनुमान एक बुनियादी सवाल। वापस मार्ग पर। एरिक Ouyang: हाँ। हम मार्गों पर एक नज़र रखना है। अध्यक्ष 2: जहां uses.blogcontroller पर, पद सृजित कि हमें क्या करने के लिए प्रत्यक्ष करता है? एरिक Ouyang: हाँ। हाँ। अध्यक्ष 2: या क्या that-- है एरिक Ouyang: तो, कहते हैं, एक नज़र रखना उदाहरण के लिए, यहीं इस मार्ग। पहले भाग में वास्तविक है उपयोगकर्ता के लिए जाना जाएगा कि यूआरएल। और यहाँ इस सरणी, साहचर्य सरणी को परिभाषित करता है हमारे पास कैसे करना चाहते हैं यह करने के लिए प्रतिक्रिया में आवेदन काम करते हैं। इसलिए का उपयोग करता नियंत्रक है, समारोह है कि हम जब एक फोन करना चाहते हैं उपयोगकर्ता इस यूआरएल के लिए चला जाता है। तो viewPost यहीं था एक हम अंदर से परिभाषित कि समारोह BlogController-- की अध्यक्ष 2: मैं देख रहा हूँ। एरिक Ouyang: कि हम --so वास्तव में एक दृश्य प्रदान कर सकते हैं, , कुछ गणना प्रदर्शन एसक्यूएल डाटाबेस के साथ बातचीत। अध्यक्ष 2: ठीक है। और फिर अन्य: एरिक Ouyang हिस्सा है, "" के रूप में है कि हम इस्तेमाल एक उपनाम है। हम जब नोटिस तो अगर हम फार्म बनाया है, आपको लगता है कि यूआरएल पर ध्यान देंगे :: routecreatePost। इसलिए यह वास्तविक में विकल्प यूआरएल इतना है कि हम मुश्किल नहीं कर रहे हैं में इन कोडिंग तो हम इसे बदल सकते हैं एक बार, हम नाम बदलने के लिए चाहते थे कि अगर कहते हैं। इसके बजाय पोस्ट स्लैश की नई, हम पी की तरह क्या करना चाहते हैं सिर्फ साफ करने के लिए नए स्लेश हमारे यूआरएल थोड़ा ऊपर। हम नहीं बल्कि एक स्थान में यह बदल जाएगा सब अलग अलग फ़ाइलों भर से अधिक है। बिंदास। अच्छी बात हे। तो अब हमारे पास एक बहुत बुनियादी ब्लॉग प्लेटफार्म। हम शायद इसलिए एक बटन में जोड़ना चाहते हैं कि हम वास्तव में नए पदों का सृजन कर सकते हैं। हम एक बार देख ले तो अगर लेआउट मास्टर में, हम हैडर राइट नामक एक अनुभाग है हम सिर्फ शीर्ष पर परिभाषित किया गया है। इसलिए हम बटन को जोड़ सकते हैं हेडर के ऊपर। तो क्या हम वास्तव में, index.blade.php के लिए जाना अगर ऐसा यहां के अंदर चला जाता है की परिभाषा क्या है। इसलिए इस हैडर सही अनुभाग, हम क्या करने जा रहे हैं करने के लिए जाने के लिए एक बटन में से जोड़ रहा है मार्ग नई पोस्ट द्वारा परिभाषित यूआरएल। बस इसे साफ और बनाने के लिए यह सुंदर और सभी बूटस्ट्रैप, हम बनाने जा रहे हैं यह एक डिफ़ॉल्ट बटन। चलो बस मस्ती के लिए यह बड़ी बनाते हैं। और इसके अंदर है, हम कुछ पाठ डाल सकता है। लेकिन क्या बूटस्ट्रैप प्रदान करता है glyphicons है। तो क्या हम वास्तव में उस में जोड़ सकते हैं हम पहले भी देखा है कि अच्छा पेंसिल। Glyphicon। Glyphicon-पेंसिल। तो यह हमारे डाल करने की अनुमति देगा बदले में पाठ का एक प्रतीक है। अब हम बंद करते हैं, तो इस इस खंड को परिभाषित करेगा। और, हे। हम हमें लिंक है कि एक अच्छा बटन है सीधे करने के लिए एक ब्लॉग पोस्ट पेज जोड़ने। इसलिए हम एक काफी सरल ब्लॉग है। हम यह करने के लिए सामान जोड़ सकते हैं। लेकिन हम आम तौर पर क्या उम्मीद ब्लॉग से टिप्पणी कर रहा है। हमें करने के लिए तो यह वास्तव में महत्वपूर्ण है किसी और के लिए एक वेबसाइट का दौरा किया, तो कहना और वास्तव में पोस्ट पसंद करता है वे चर्चा में संलग्न कर सकते हैं पृष्ठ पर जाने वाले अन्य लोगों के साथ। तो हम जाने के लिए और बनाने के लिए जा रहे हैं नए डेटाबेस की मेज और एक नया मॉडल हम संबद्ध कर सकते हैं कि इतना पदों के साथ टिप्पणी। तो पहला कदम है, पहले की तरह, हम एक प्रवास को चलाने की जरूरत है। पहले की तरह तो, हम करते हैं PHP कारीगर माइग्रेट करें: बनाते हैं। और हम एक बनाने के लिए जा रहे हैं create_comments_table बुलाया। यह एक फाइल बनाएगा कि हमारे नए माइग्रेशन है। और हम जैसे, करने के लिए जा रहे हैं इससे पहले, एक नया टेबल परिभाषित करते हैं। तो स्कीमा :: एक बना तालिका टिप्पणियों बुलाया। यहां इस समारोह में। और इस तालिका के अंदर क्या हम पहले क्या करना है जा रहे हैं पहले की तरह, एक आईडी आवंटित। आईडी वेतन वृद्धि। हम उपयोगकर्ताओं को संबद्ध करने के लिए अनुमति देने के लिए जा रहे हैं एक विशेष टिप्पणी के साथ उनके नाम है। हम कुछ सामग्री के लिए जा रहे हैं कि यह पाठ की सामग्री के साथ साथ चला जाता है। और यहाँ हम करने जा रहे हैं ऐसा करने से कुछ अलग है। हम एक पूर्णांक बनाने के लिए जा रहे हैं कि post_id कहा जाता है जो क्या पद सूचित करने के लिए जा रहा है एक विशेष टिप्पणी के साथ चला जाता है। इसके अलावा, हम वास्तव में करने के लिए जा रहे हैं इस पर एक विदेशी कुंजी बाधा निर्धारित किया है। तो MySQL के उस लागू करेंगे। हम करने की कोशिश नहीं कर रहे हैं टिप्पणी नंबर आवंटित हम नहीं है, तो 5 5000 पोस्ट करने के लिए उस पर 5000 पदों था। तो हम यहाँ क्या करते हैं, हम विदेशी post_id करना के साथ संबद्ध किया जा रहा है तालिका पदों से आईडी क्षेत्र। और हम वास्तव में कुछ करना होगा किसी और सहायक, onDelete है। हम कुछ हटाना तो अगर डेटाबेस से पोस्ट, हम झरना करना चाहते हैं कि के रूप में अच्छी तरह से टिप्पणी के लिए हटाता है। यह बहुत मददगार नहीं है क्योंकि हमें पदों पर टिप्पणी के लिए है कि अस्तित्व में नहीं है। और अंत में, पहले की तरह, हम कर रहे हैं इस पर समय टिकटों सेट करने के लिए जा रहा है। और पहले की तरह, हम करने जा रहे हैं रिवर्स माइग्रेशन होना है टिप्पणियों मेज छोड़ने। तो अब हम वापस जाने के लिए अगर यहाँ करने के लिए, हम जा रहे हैं इस प्रवास, कारीगर माइग्रेट चलाने के लिए। और अब यह इस आवेदन किया है हम अभी बनाया है कि माइग्रेशन। , हम एक नज़र phpMyAdmin में तो अगर हम अब, वास्तव में, ऐसा है कि एक टिप्पणी के टेबल है हम सिर्फ निर्दिष्ट कि संरचना। पहले की तरह तो, हम कर रहे हैं एक नया मॉडल तैयार करने के लिए जा रहा सार एसक्यूएल मेज पर हम अभी बनाया। तो चलो एक नई फ़ाइल जोड़ दें। हम यह comment.php कॉल करने के लिए जा रहे हैं। और यह वास्तव में काफी होने जा रहा है एक मामूली बदलाव के साथ सीधा क्या से हम पहले था। तो वर्ग टिप्पणी सुवक्ता फैली हुई है। और हम क्या जा रहे हैं को परिभाषित किया जाता है यहाँ करने के लिए है कि एक समारोह अन्य मॉडलों के साथ रिश्ता है। इसलिए हम एक के बाद समारोह के लिए जा रहे हैं यहाँ इस संबंध देता है। इसलिए हम चाहते हैं कि निर्दिष्ट कर रहे हैं इस पोस्ट के अंतर्गत आता है, एक पोस्ट है कह रही है कि कि इस टिप्पणी के अंतर्गत आता है। यह वास्तव में हो गया है मॉडल के लिए राजधानी पी। और अब सिर्फ दूसरे फ्लिप पर पक्ष, हम अरे, यह कहने के लिए है। पोस्ट टिप्पणियाँ है। तो क्या हम क्या करने जा रहे है सार्वजनिक समारोह टिप्पणियों को परिभाषित। और यहाँ वापस आ रहा है यह कई टिप्पणी की है। तो अब जादुई हम एक पोस्ट है, हम विशेषता टिप्पणियां प्राप्त कर सकते हैं और इसके साथ यह आबाद करेंगे डेटाबेस से जानकारी। तो चलो वास्तव में के माध्यम से चलते हैं और हमारे विचार फाइल करने के लिए एक नई सुविधा जोड़ने इतना है कि हम कर सकते हैं, दोनों प्रदर्शन और टिप्पणियों पैदा करते हैं। तो हम एक नई धारा को परिभाषित करने के लिए जा रहे हैं। चलो बस यह अलग करते हैं एक क्षैतिज शासन के साथ। धारा आईडी = "टिप्पणी"। हम क्या करने जा रहे हैं यहाँ है, पहले की तरह, सभी टिप्पणियों के माध्यम से पुनरावृति। तो वास्तव में हम इस कैसे करना है, मैंने उल्लेख किया है, के रूप में काफी जादुई। हम टिप्पणी पोस्ट करते हैं। और फिर हम प्रत्येक के लिए ऐसा कर सकते हैं टिप्पणियों में से प्रत्येक पर पाश। और हम करने जा रहे हैं करते हैं, div वर्ग टिप्पणी है और हम वास्तव में करने के लिए जा रहे हैं इस टिप्पणी के बाहर प्रिंट। इसलिए हे कि प्रदर्शन, व्यक्ति name-- टिप्पणी जो इस comment-- तैनात डॉट डॉट डॉट कहते हैं। हम एक ब्लॉक में इस डाल करने के लिए जा रहे हैं बोली, बस यह अच्छा लग बनाने के लिए। और फिर सामग्री ब्लॉक बोली टिप्पणी। और foreach। तो अब इस लूप जा रहा है सभी टिप्पणियों के माध्यम से कि जुड़ा हुआ है पदों में से प्रत्येक के साथ और उन टिप्पणियों के प्रत्येक प्रदर्शन। मैं नीचे एक खंड जोड़ने के लिए जा रहा हूँ यहाँ, की अनुमति देता है जो हमें एक टिप्पणी जोड़ने के लिए। तो H3 वर्ग। यहाँ एक शीर्षक रखो। एक टिप्पणी जोड़ें। और हम एक नए रूप में परिभाषित करने के लिए जा रहे हैं। पहले की तरह तो, हम कर रहे हैं फार्म कार्रवाई करने के लिए जा रहा है। और यहाँ, नया कार्य हम कर रहे है एक नए नियंत्रक को परिभाषित करने के लिए जा रहा है कि हमें पोस्ट करने के लिए प्रतिक्रिया करने के लिए अनुमति देता है टिप्पणियों बनाने के लिए अनुरोध। तो यूआरएल :: मार्ग createComment। मैं यहाँ पैरामीटर में पारित करने के लिए जा रहा हूँ। पद का आईडी कि हम पर टिप्पणी बना रहे हैं। और इस के तत्कालीन विधि फार्म पोस्ट होने जा रहा है। अब हम में जोड़ने के लिए जा रहे हैं एक दो क्षेत्रों, फार्म समूह। इस के साथ एक इनपुट होने जा रहा है "नाम" और वर्ग = "फार्म-नियंत्रण" नाम, = "पाठ", और साथ टाइप प्लेसहोल्डर = "आपका नाम है।" हम यह भी परिभाषित करने के लिए जा रहे हैं एक और रूप क्षेत्र, जो एक पाठ होने जा रहा है क्षेत्र में हम पहले था। पहले की तरह की सामग्री कहते हैं। Class = "फार्म-नियंत्रित करते हैं।" प्लेसहोल्डर = "यहाँ लिखें।" और सिर्फ इतना है कि हम वास्तव में इसे प्रस्तुत कर सकते हैं, प्रकार और वर्ग = भेजें "BTN-प्राथमिक BTN।" प्रपत्र बंद करें। इस कार्रवाई को बंद करें। तो अब हम इस पेज को जहां को ताज़ा अगर हम कहते हैं, एक विशेष पोस्ट किया है। हम सर्वर रिबूट करने के लिए है। पीएचपी कारीगर काम करते हैं। इस रीबूट करें। हम मार्ग को परिभाषित किया है। लेकिन अब के लिए, चलो बस इस लेते हैं बाहर इतना है कि हम वास्तव में आप दिखा सकते हैं क्या पृष्ठ की तरह लग रहा है, और उसके बाद हम वास्तव में लगता है कि मार्ग बना देंगे। तो, हे। हम यहाँ इस नए रूप के नीचे है हम टिप्पणियों बना सकते हैं। तो चलो वास्तव में एक परिभाषित करते हैं नियंत्रक के भीतर समारोह हम टिप्पणी जोड़ने कर सकते हैं। चलो वापस चलते हैं। और blogcontroller.php भीतर, हम क्या करने जा रहे हैं एक नया समारोह बना रहा है टिप्पणी बनाने का आह्वान किया। सार्वजनिक समारोह createComment। यह एक एकल किया जा रहा है पैरामीटर, पदों की आईडी कि हम पर टिप्पणी कर रहे हैं। और इस तरह से पहले, हम कर रहे हैं पहली पोस्ट पाने के लिए जा रहा है। तो, findOrfail आईडी पोस्ट। बाद में, हम जा रहे हैं एक नई टिप्पणी बनाने के लिए। इसलिए = नई टिप्पणी टिप्पणी। नाम = इनपुट टिप्पणी :: नाम मिलता है। टिप्पणी सामग्री = एक ही नई लाइन इनपुट के टूटता में :: सामग्री मिलता है। और अंत में, हम करने के लिए जा रहे हैं पोस्ट के साथ इस टिप्पणी सहयोगी। इसलिए हम उपयोग करने के लिए जा रहे हैं इस समारोह में, टिप्पणियाँ, कि हमें बचाने के लिए अनुमति देता है इस संबंध। तो अब इस टिप्पणी होगा स्वचालित रूप से पोस्ट आईडी। हम भी इसे तैयार कर सकती है मैन्युअल रूप से है, लेकिन यह है के रूप में दूर पढ़ने के लिए और अधिक आसान समारोह में चला जाता है। और हम पूरा करने के बाद यह है कि हम क्या करना चाहते करने के लिए उपयोगकर्ता अनुप्रेषित है मार्ग viewPost द्वारा निर्दिष्ट साथ सरणी के साथ पोस्ट आईडी पैरामीटर। और अब तो यह है कि यह वास्तव में काम करता है, हम इस मार्ग को परिभाषित करने की जरूरत है। ट्रेन :: पोस्ट। और अब हम इस कॉल करने के लिए जा रहे हैं पोस्ट आईडी स्लैश टिप्पणी स्लेश। ऐरे नया समारोह का उपयोग करता है हम अभी बनाया। BlogController। CreateComment रूप CreateComment। फाडू। तो अब हम इस पृष्ठ ताज़ा उम्मीद है कि अगर और एक टिप्पणी है, कहते हैं, डेविड Malan में जोड़ें। "उम्मीद है कि यह काम करता है।" जमा करें। हम वास्तव में, एक की क्या ज़रूरत है इस ब्लॉग पोस्ट पर टिप्पणी। बिंदास। तो अब हम एक काफी है कार्यात्मक ब्लॉग पोस्ट। हम सिर्फ करने के लिए जा रहे हैं इसलिए एक जोड़ी tweaks के जोड़ हम कुछ और अधिक उपयोगी है कि इन पदों के बारे में जानकारी। हम करने के लिए वापस जाने के लिए तो अगर फ्रंट पेज, हम कोई मतलब नहीं है के कितने टिप्पणी कर रहे हैं इन पदों में से प्रत्येक पर। तो क्या हम वास्तव में क्या जा रहे हैं है ऐसा करने के लिए, हमारे मॉडल के अंदर, की अनुमति देता है कि एक सहायक समारोह को परिभाषित हमें टिप्पणियों की संख्या निर्दिष्ट करने के लिए कि एक विशेष पोस्ट के साथ चलते हैं। इसलिए हम पैदा करने के लिए जा रहे हैं एक सहायक समारोह। सार्वजनिक समारोह। GetNumCommentsStr। संख्या निर्दिष्ट करता है तो एक स्ट्रिंग इसके साथ साथ चलते हैं कि टिप्पणी की। और हम क्या करने जा रहे हैं का कहना है कि NUM = इस टिप्पणी के गिनती। इसलिए हम गिनती करने के लिए जा रहे हैं टिप्पणियों की संख्या। इस नंबर 1 के बराबर होती है और अगर हम कर रहे हैं सिर्फ एक टिप्पणी वापस करने के लिए जा रहा है। और फिर अन्यथा, हम वापसी करना चाहते हैं NUM और टिप्पणियों की कड़ी, इसलिए हम pluralization सही मिलता है। बस इस एक भी बोली बनाते हैं। एक टिप्पणी। और अब हम इस समारोह का उपयोग कर सकते हैं सीधे हमारे विचार के अंदर। हम करने के लिए वापस जाने के लिए तो अगर हम पैदा की है कि आंशिक पदों, अब हम वास्तव में करना चाहते हैं टिप्पणियों की संख्या प्रदर्शित करते हैं। तो हम क्या कर सकते है पोस्ट, इस समारोह का उपयोग हम सिर्फ करने के लिए बनाए गए टिप्पणियों की संख्या प्रदर्शित करते हैं। अब हम यह ताज़ा तो अगर वास्तव में, करता है, प्रदर्शन संख्या टिप्पणियां कि इसके साथ साथ चलते हैं। हम आपको अगर फैंसी होना चाहता था वास्तव में वितरण कोड को देखो, हम वास्तव में लिंक कर सकते हैं टिप्पणी करने के लिए इस। यदि आपको याद है, जब हम भीतर परिभाषित इस खंड आईडी टिप्पणी की है कि देखने के लिए। तो क्या हम वास्तव में लिंक करने के लिए चाहता था सीधे टिप्पणी अनुभाग के लिए, क्या हम यहाँ क्या एक href है होगा मार्ग viewPost का URL। पोस्ट आईडी सरणी ID में भेजें। और फिर हम पर जाना चाहते हैं विशेष रूप से टिप्पणी अनुभाग। यहाँ एक टैग को बंद करते हैं। तो अब हम इस को ताज़ा अगर पेज, हम इस पर क्लिक करें। हम करने के लिए सीधे जाना होगा टिप्पणी अनुभाग। हम एक लंबी पोस्ट किया था, तो आप कर सकते हैं वास्तव में इस उछाल नीचे देखते हैं। लेकिन अगर आप यह है कि नोटिस देंगे नहीं पृष्ठ के शीर्ष पर। बिंदास। फाडू। तो यह है कि एक काफी सरल है कुछ सरल का उदाहरण आप Laravel के साथ क्या कर सकते हैं। लेकिन तुम यहाँ देख सकते हैं कि हम चीजों की एक बहुत कुछ किया है कोड की काफी कम राशि के साथ। Laravel हमें क्या करने की अनुमति देता है पर्दे के पीछे एसक्यूएल प्रश्नों। यह साफ-सफाई करता है पर्दे के पीछे हमारे लिए। हमें इन रिश्तों करने की अनुमति देता बहुत आसानी से हमें जरूरत के बिना किसी भी एसक्यूएल क्या करने के लिए बयानों में शामिल होने के क्या पदों के साथ टिप्पणियों गठबंधन। हमें ऐसा करने के लिए अनुमति देता है टेम्पलेट्स की विरासत इसलिए हम इन घोंसले परिभाषित कर सकते हैं कि फ़ाइलों ताकि हम खुद को दोहरा नहीं कर रहे हैं बस हम उस था जब की तरह ब्लॉग पोस्ट का प्रदर्शन हम की जरूरत नहीं है कि कॉपी और पेस्ट कोड। और यहाँ से आप का निर्माण कर सकते हैं तेजी से जटिल अनुप्रयोगों। आप कल्पना कर सकते हैं अगर हम लागू करने के लिए चाहता था लॉग-इन, हम एक तीसरी पार्टी में लाने के लिए कह सकते हैं, हमें ऐसा करने की अनुमति देता है कि ढांचा। उनमें से एक गुच्छा है कि वास्तव में, वास्तव में कर रहे हैं की तरह कर सकते हैं कि महान, पासवर्ड वसूली। और इसे आप एक भेज देंगे पासवर्ड ईमेल रीसेट। हम अनुमति लागू कर सकते हैं , मैं एक पद सृजित कर सकते हैं ताकि लेकिन किसी और इसे संपादित नहीं कर सकते। हम लागू कर सकते हैं कार्यक्षमता पदों से हटाने के लिए। लेकिन तुम हम बहुत है कि यहाँ देख सकते हैं ज्यादा सभी मौलिक घटक वास्तव में कुछ निर्माण करने के लिए, वास्तव में, गतिशील और रोमांचक वेब क्षुधा। उस के साथ तो, मुझे लगता है हम अच्छा कर रहे हैं लगता है। आप लोग किसी भी सवाल है? हाँ? स्पीकर 3: आप कैसे करते हैं स्थैतिक सामग्री मिलता है? एरिक Ouyang: स्टेटिक सामग्री। हम था तो जब आपको लगता है कि पहले देखा था यहाँ यह सही है, इस लेआउट सामग्री, देखें, हम इस पड़ा बाद में इस सरणी के बिना। Blog.index, हम इस पड़ा सिर्फ एक स्थिर फ़ाइल के रूप में। हम पास नहीं है तो यह करने के लिए अपने साथ कुछ भी, यह सिर्फ सीधे एचटीएमएल प्रस्तुत करना देंगे। लेकिन हम इस साहचर्य में पारित अगर गतिशील रूप है जो पदों की सरणी, डेटाबेस से खींच लिया, हम पेज गतिशील बना सकते हैं। बिंदास। कोई अन्य प्रश्न? स्पीकर 3: आप कैसे तुलना करेंगे शायद कुछ अन्य विकल्पों के लिए Laravel? एरिक Ouyang: यकीन है। हाँ। तो Laravel कि is-- एक महान question-- वेब चौखटे के लिए कई विकल्पों में से एक है। तो पटरियों पर रूबी लोकप्रिय है कि एक है। मैं ट्विटर होना करने के लिए इस्तेमाल का मानना ​​है पटरियों पर रूबी के साथ लागू किया है। मुझे लगता है वे के बाद बंद कर दिया है लगता है। FuelPHP कहा जाता है एक और एक है। तो रूबी पटरियों पर रूबी भाषा का उपयोग करता है और MVC सामान का एक बहुत लागू करता है हम यहाँ देखते हैं। FuelPHP एक और PHP रूपरेखा है। Django के मेरे पसंदीदा में से एक है। यह अजगर के लिए एक वेब रूपरेखा है। तो तुम अजगर में अपने वेब एप्लिकेशन को लिख सकते हैं। तो इन विकल्पों में से एक टन है। Laravel, मुझे लगता है, के द्वारा और बड़े मेरी पसंदीदा सही है अब PHP के लिए सिर्फ इसलिए कि घटकों की हम पहले के बारे में बात की है। यह संगीतकार सक्षम होना चाहिए। यह वास्तव में, वास्तव में एक भी शामिल है अर्थपूर्ण ORM प्रणाली। इसके अलावा एक सच में भयानक templating है भाषा कि दूसरों से कुछ बस प्रदान नहीं करते हैं। और माइग्रेशन। माइग्रेशन के रूप में अच्छी तरह से कमाल कर रहे हैं। बिंदास? बहुत बढ़िया। के लिए ठीक है, बहुत बहुत धन्यवाद इस संगोष्ठी में देख रहा है, अपने अंतिम परियोजनाओं पर और अच्छी किस्मत।