[সঙ্গীত বাজানো] ERIC Ouyang: আরে, সবাই. স্বাগতম. এই বিল্ডিং গতিশীল ওয়েব Laravel সঙ্গে অ্যাপ্লিকেশন. আমার নাম এরিক Ouyang হয়. আমি সামাজিক গবেষণা অধ্যয়নরত একটি বার্ষিক আছি কম্পিউটার বিজ্ঞান মধ্যে একটি মাধ্যমিক সঙ্গে, এবং আমি অ্যাডামস বাস এখানে হার্ভার্ড এ হাউস. তাই Laravel, তার সবচেয়ে অন্তঃস্থলে, একটি MVC ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক হয়. তাই আপনাকে বলছি কি চান CS50 ফাইন্যান্স সঙ্গে কাজ করা হয়েছে, Laravel পারবেন যে একটি কাঠামো আপনি গতিশীল ওয়েব অ্যাপ্লিকেশন নির্মাণ করতে. তাই আপনি যদি কিছু অজ্ঞান মনে করতে পারেন স্টাফ ধরনের একটি এক্সটেনশন হিসাবে আপনি CS50 মধ্যে কাজ করছি ফাইন্যান্স, কিন্তু যে একটি সিস্টেম অনেক বেশি জোরালো, অনেক কিছু অজ্ঞান আরো মার্জিত, এবং অনেক উপলব্ধ আপনার জন্য কার্যকারিতা মোটামুটি জটিল নির্মাণ ওয়েব অ্যাপ্লিকেশন. তাই এর কিছু দিয়ে যান মূল বৈশিষ্ট্য, এবং তারপর আমরা একটি মধ্যে আকর্ষণীয় হবে একটি ব্লগ নির্মাণের উদাহরণ Laravel সঙ্গে আবেদন. প্রথম জিনিস এক সুতরাং যে কাজ MVC টাইপ থেকে এটি আলাদা আপনি CS50 সঙ্গে কাজ করছি যে এটি একটি ORM ইঞ্জিন অন্তর্ভুক্ত করা হয়. তাই ORM বস্তু ঘোরা রিলেশনাল ম্যাপিং. সুতরাং আপনি এই নির্মাণ করতে পারবেন বিমূর্ততা একটি স্তর ডাটাবেস মধ্যে এবং আপনার কন্ট্রোলার. CS50 ফাইন্যান্স যেখানে তাই অসদৃশ আপনি সরাসরি, প্রশ্ন করা ORM স্তর আপনি করতে পারবেন বিমূর্ত যে দূরে এবং তৈরি তুলনায় আরো শক্তিশালী যে মডেল আপনি এসকিউএল প্রশ্নের জবাব দিয়ে সরাসরি করতে পারেন. সত্যিই যে আরেকটি বিষয় সহায়ক বংশগত টেমপ্লেট হয়. তাই আপনি যদি CS50 ফাইন্যান্স মধ্যে বিজ্ঞপ্তি পাবেন, আপনি একটা অনেক rewriting শেষ পর্যন্ত, স্থাপন করা যেখানে আপনি সম্ভাব্য পারে আপনি করতে সক্ষম না হন, কিছু পুনরায়. তাই এখানে Laravel, আপনি কি ব্যবহার করতে পারেন ফলক টেমপ্লেট ইঞ্জিন হিসাবে পরিচিত একটি মাস্টার লেআউট তৈরি করা. এবং সেখান থেকে, আপনি উত্তরাধিকারী করতে পারেন তাই যে উপ-টেমপ্লেট আসলে করতে পারেন মধ্যে উপাদান অন্তর্ভুক্ত বড় বেস টেমপ্লেট যে. মাইগ্রেশন. তাই এই একটি মোটামুটি মান বৈশিষ্ট্য অধিকাংশ আধুনিক ওয়েব অ্যাপ্লিকেশন পরিকাঠামো. তাই এই আপনি প্রতিনিধিত্ব করতে পারবেন কোড ডাটাবেস স্কিমার পরিবর্তন. তাই বলে যাওয়া ছাড়া, পিএইচপি মাই এডমিন, আপনি আসলে এই মাইগ্রেশন তৈরি করতে পারেন আপনি ডাটাবেস প্রতিনিধিত্ব যেখানে স্কিমা সরাসরি কোড পরিবর্তন. এবং এই আপনি বিশেষ করে চাচ্ছি পারবেন আপনি একাধিক মানুষ আছে একই ওয়েব application-- উপর এই পরিবর্তন ট্র্যাক, GitHub, বা অন্য কিছু সংগ্রহস্থলের মধ্যে বলে. তাই এই সত্যিই সহায়ক এবং প্রয়োজন হ্রাস বলে,, এসকিউএল ডাম্প অনেক কাছাকাছি পাস. এবং পরিশেষে, কম্পোজার হল সত্যিই, সত্যিই দরকারী কিছু যে আপনি অন্যান্য ব্যবহার করতে পারবেন মানুষ এর কোড ভয়ঙ্কর জিনিস না. তাই Laravel এর হিসাবে গঠিত বিভিন্ন সুরকার প্যাকেজ. তাই আপনি যদি আনতে চেয়েছিল বলে একটি প্রমাণীকরণ প্যাকেজের মধ্যে অথবা আপনি কিছু আনতে চেয়েছিলেন জেনারেটরের স্ক্রিপ্ট বা একটি অ্যাডমিন বাছাই করা ইন্টারফেস, আপনি প্লাগ এবং খেলা করতে পারেন কম্পোজারের সঙ্গে যারা উপাদান. সুতরাং আসুন শুরু করা যাক. আপনার কাছ থেকে কোন প্রশ্ন আমরা আগে কাজ শুরু না? কোন প্রশ্ন? কুল. তাই প্রথম পদক্ষেপ কম্পোজার ইনস্টল. তাই কম্পোজার আপনি করতে পারবেন এই নির্ভরতা পরিচালনা, এটা Laravel কাঠামো কিনা বা অন্য কিছু তৃতীয় পক্ষ এক্সটেনশান. প্রথম কমান্ড পারবেন আপনি, সুরকার ডাউনলোড করতে এবং দ্বিতীয় কমান্ড আপনি করতে পারবেন আপনার স্থানীয় bin ফোল্ডারে মধ্যে এটি সরানো তাই আপনি কম্পোজার ব্যবহার করতে পারেন যে সরাসরি টার্মিনাল থেকে. এর পরে, এগিয়ে যান এবং একটি নতুন Laravel প্রকল্প তৈরি. আমরা আসলে চলুন কিছু উদাহরণ কোড ব্যবহার আমি একত্র করেছি যে এই ব্লগ তৈরি. কিন্তু আপনি থেকে শুরু করছেন যদি স্ক্র্যাচ, আপনি এই কমান্ড ব্যবহার করতে হবে এখানে আপ, সুরকার তৈরি প্রকল্প, Laravel তারপর Laravel কাট, এবং আপনার প্রকল্পের নাম. এবং যে অন্তর্ভুক্ত করা হবে সব ডিস্ট্রিবিউশন কোড একটি নতুন Laravel প্রকল্প শুরু জন্য. আপনার CS50 চূড়ান্ত প্রকল্পের জন্য তাই, আপনি পাবেন সম্ভবত যে কমান্ড ব্যবহার করতে চান. কিন্তু আমরা এই দিয়ে শুরু করতে যাচ্ছেন. তাই আপনি যদি কাজ করেছি একবার , আপনি পেতে যাচ্ছেন যে একটি মোটামুটি ব্যাপক সংখ্যা blog50 ফাইল. তাই আসুন শুধু মধ্য দিয়ে যেতে দেওয়া এই উপাদান কিছু. আপনি এই রুট এ বিজ্ঞপ্তি পাবেন ডিরেক্টরি, একটি অ্যাপ্লিকেশন ফোল্ডার আছে. অ্যাপ্লিকেশন ফোল্ডারের ভিতরে আছে, কয়েক সহায়ক ফোল্ডার. দিয়ে শুরু নোট এই কনফিগ ফোল্ডার. তাই এই পর্যন্ত কিভাবে সেট আপনার ওয়েব অ্যাপ্লিকেশন , বলে, মানুষ প্রমাণ করতে যাচ্ছে বা নগদ কিছু বা ডাটাবেসের সাথে সংযোগ. এবং সত্যিই কি সহায়ক হয় Laravel আপনি বিভিন্ন সেট করতে পারবেন উন্নয়ন পরিবেশের. তাই আমরা এখানে কাজ করেছি যদি হয় আমরা স্থানীয় ফোল্ডারের অধীনে যান, একটি database.php ফাইল আছে. এবং যদি আপনি এখানে বিজ্ঞপ্তি পাবেন যে আমরা একটি মাইএসকিউএল সংযোগ যে সেট আপ ব্যক্তিদের সাথে সংযোগ করতে পারবেন যে মাইএসকিউএল সার্ভার সরাসরি CS50 প্রয়োগ. এবং আমরা একটি ডাটাবেস সংযোগ স্থাপন করছি আমি সেট আপ যে Blog50 বলা হয়. তাই এর আসলে এগিয়ে যান এবং , এই কাজ সংস্করণ ইনস্টল শুধু কি একটা ধারনা পেতে আমরা নির্মাণ করছেন যে আবেদন মনে হচ্ছে. তাই আমি একটি কপি আছে এই Blog50 সম্পন্ন. তাই Laravel আসলে একটি সার্ভার মধ্যে নির্মিত হয়েছে আপনি সরাসরি রান করতে পারেন যে কমান্ড লাইন থেকে. তাই এই অনুরূপ PSet যখন আপনি আসলে আগে সি আপনার নিজস্ব সার্ভার নির্মাণ তাই তারা এক নির্মিত হয়েছে আপনি আপনার Laravel অ্যাপ্লিকেশন চালাতে পারেন যে সরাসরি কমান্ড লাইন থেকে. আমরা পিএইচপি শিল্পী না সুতরাং, যদি এই সেবা একটি উন্নয়ন সার্ভার আরম্ভ করা হবে পোর্ট 8,000 উপর. আমরা স্থানীয় হোস্ট যান তাই 8,000, আপনি হেই, যে বিজ্ঞপ্তি পাবেন. আমরা আমাদের ব্লগে আপ এবং চলমান আছে. তাই Laravel এখানে উৎপাদিত হয় আমাদের ব্লগ সামনে পাতা. অত্যন্ত সহজ অ্যাপ্লিকেশন. কিন্তু একটি দম্পতি আছে সত্যিই ছিমছাম বৈশিষ্ট্য এটি ফণা নীচে উপলব্ধ করা হয়. তাই ব্লগ আবেদন এর সহজবোধ্য. আমরা একটি পোস্ট তৈরি করতে চেয়েছিলেন, আমরা যে বাটন ক্লিক করতে পারেন. আমরা "আরে, সবাই বলতে পারেন. এটি একটি সত্যিই মজার হয় উদাহরণস্বরূপ সেমিনার, ". এবং নিচে এখানে কিছু লিখুন. এখানে শিরোনাম. আমরা দিন এ ক্লিক করেন তাহলে আপনি পাবেন লক্ষ্য করা যে আমাদের নতুন ব্লগ পোস্টে যোগ করা হয়েছে ব্লগ সামনে পাতা. আমরা এখানে ফিরে যান, আপনি বিজ্ঞপ্তি পাবেন ইতিমধ্যে কিছু মন্তব্য আছে ব্লগে. যদি আমরা নিচে স্ক্রল, আপনি পাবেন তাই জনাথন ত্যান বলেছেন যে লক্ষ্য তিনি খুব এই পোস্টে দ্বারা চক্রান্ত ছিল. সুতরাং আমরা কিভাবে বস্তুর মধ্যে যেতে হবে রিলেশনাল ম্যাপিং পারবেন আপনি এই সম্পর্ক কি সেইসাথে একটি মোটামুটি বিজোড় উপায়. কুল. কার্যকারিতা সম্পর্কে কোন প্রশ্ন আমরা নির্মাণ করতে যাচ্ছেন কি? কুল. তাই এর আসলে দিয়ে শুরু করা যাক ডাটাবেস টেবিল তৈরি. তাই, CS50 ফাইন্যান্স মধ্যে আপনি যে প্রত্যাহার ব্যবহারকারীদের জন্য একটি টেবিল একত্র করা সেইসাথে জন্য আপনার পোর্টফোলিও স্টক. আমরা আগে উল্লেখ করেছে, তাই হিসাবে আমরা কি Laravel ব্যবহার মাইগ্রেশন হিসাবে পরিচিত হয়. আমরা ফিরে যান তাই এখানে বিতরণের কোড, যে প্রথম কমান্ড Laravel আপনি উপলব্ধ করা হয় যে সহায়ক এই স্থানান্তর কমান্ড. সুতরাং আমরা পিএইচপি কারিগর স্থানান্তর করতে পারেন: না. তাই এই আমাদের একটি মাইগ্রেশন তৈরি করতে পারবেন. এবং তারপর আমরা চাইবেন একটি মাইগ্রেশন তৈরি করতে , create_posts_table বলা যা যাচ্ছে হতে যেখানে আমরা চলুন আমাদের ব্লগ পোস্ট সংরক্ষণ করা. এবং যদি আপনি এটি সঞ্চালিত হয় যে এখানে বিজ্ঞপ্তি পাবেন কিছু কোড দিয়ে যে আসলে সঙ্গে একটি ফাইল তৈরি করে এটি একটি সময় স্ট্যাম্প. , আমরা গিয়ে ডাটাবেস তাকান তাই আমরা মাইগ্রেশন অধীনে বিজ্ঞপ্তি পাবেন এটি তৈরি করা যে একটি আমাদের জন্য ফাঁকা ফাইল যা নামের সঙ্গে boilerplate কোড আছে আমরা যে নির্দিষ্ট, পোস্ট টেবিল তৈরি. এবং এটা দুই ফাংশন আছে. আপ আমরা যখন রান করতে চান কি মাইগ্রেশন ডাটাবেস প্রয়োগ করা হয়. এবং নিচে আমরা কি করতে যাচ্ছেন কি আমরা একটি মাইগ্রেশন বিপরীত করতে চান. তাই এখানে এর বাইরে শুরু করা যাক এই মাইগ্রেশন লেখা. সুতরাং একটি সহায়ক বর্গ আছে Laravel মধ্যে স্কিমা বলা হয়. সুতরাং আমরা স্কিমা :: তৈরি চালানো চলুন. এবং আমরা তৈরি করতে যাচ্ছেন একটি টেবিল পোস্ট বলা হয়. এবং এখানে আমরা একটি ফাংশন ব্যবহার করে এই আবেদন. এবং এখানে মধ্যে, আমরা আসলে চলুন আমাদের টেবিল বিষয়বস্তু উল্লেখ করুন. আমরা একটি আইডি তৈরি করতে যাচ্ছেন, যা স্বয়ংক্রিয় বৃদ্ধিশীল হয়. উপরন্তু, আমরা চলুন একটি ক্ষেত্র তৈরি করতে যে আমাদের ব্লগ পোস্ট শিরোনাম প্রতিনিধিত্ব করে. আমরা একটি ক্ষেত্র তৈরি করতে যাচ্ছেন আমাদের ব্লগ পোস্ট লেখা জমা করার জন্য. এবং পরিশেষে, আমরা চলুন কিছু টাইম-স্ট্যাম্প সংরক্ষণ করা আমাদের পোস্ট তৈরি করা হয়েছে যখন এবং এটি আপডেট করা হয়. এবং নিচে জন্য, এটা মোটামুটি সহজ. আমরা কাজ করতে চান সব ড্রপ আমরা তৈরি করেছি যে টেবিল. গ্রেট. কোন প্রশ্ন? তাই এখন আমরা এগিয়ে যেতে হলে and-- আসলে, স্থানীয় হোস্ট, আমার সম্পর্কে আমরা আগে কি ছিল মুছে দিন. ডেটাবেস যান. আমি আমরা আগে কি ছিল মুছে ফেলা যাচ্ছে না. এই ড্রপ এবং তৈরি একটি নতুন ডাটাবেস Blog50. তাই এখন কি যাদুকর অংশ যে এখানে আমরা সরাসরি এই মাইগ্রেশন আবেদন করতে পারেন কমান্ড লাইন ব্যবহার করে ডাটাবেস হাতিয়ার. সুতরাং আমরা পিএইচপি কারিগর স্থানান্তর করতে হলে, আপনি হেই, যে বিজ্ঞপ্তি পাবেন. এটা মাইগ্রেশন টেবিল নির্মিত, যা আমরা একটি বিট কটাক্ষপাত করা হবে, এবং এটি এই প্রথম মাইগ্রেশন প্রয়োগ করা হয়েছে. আমরা Blog50 তাকান সুতরাং, আপনি বিজ্ঞপ্তি পাবেন যে এটা আমাদের জন্য দুই টেবিল নির্মিত হয়. প্রথম এই মাইগ্রেশন টেবিল. আমরা এই ব্রাউজ তাই হয়, আপনি বিজ্ঞপ্তি পাবেন এই টেবিল মোটামুটি সহজবোধ্য. এটা ঠিক হেই, যে বলেন, এর. আমরা এই মাইগ্রেশন প্রয়োগ করেছি. আমরা ফিরে যেতে এবং পোস্ট তাকান. আপনি গঠন বিজ্ঞপ্তি পাবেন আমরা এটা জিজ্ঞেস করেছেন ঠিক কি না. আমরা একটি স্বয়ংক্রিয় বৃদ্ধিশীল আইডি আছে. আমরা সংরক্ষণের জন্য একটি স্ট্রিং আছে শিরোনাম, এবং একটি টেক্সট ক্ষেত্রের কন্টেন্ট জমা করার জন্য. গ্রেট. কুল. মাইগ্রেশন সম্পর্কে কোন প্রশ্ন কাজ, আমরা তাদের কিভাবে আবেদন করতে পারেন? কোন? কুল. তাই এখন আমরা এগিয়ে যেতে চলুন এবং আসলে মডেল তৈরি করুন. সুতরাং আমরা একটি পোস্ট মডেল তৈরি করতে চান ডাটাবেস আড়াল সঞ্চয় করে. তাই বরং মাইএসকিউএল প্রশ্ন করছেন আর সরাসরি, আমরা তৈরি করতে যাচ্ছেন. সুতরাং আমরা একটি তৈরি করা আছে এখানে বলা মডেল ফোল্ডার. এবং এখানে ভিতরে, আমরা চলুন post.php নামে একটি ফাইল তৈরি করুন. এই পিএইচপি ফাইল ভিতরে, আমরা তৈরি করতে যাচ্ছেন বলিয়ে প্রসারিত করে, যা একটি বর্গ পোস্ট. বলিয়ে ORM নাম Laravel উপলব্ধ করা হয় যে ইঞ্জিন. এবং এখানে, আমরা যে আশা করতে পারে আপনি আসলে কিছু কোড লিখতে হবে. আমরা কিছু লিখে চলুন পরে সাহায্যকারী ফাংশন. বাক্সের বাইরে কিন্তু, এই ইতিমধ্যে হবে ডাটাবেসের মধ্যে কি চিনতে এবং আমরা বলতে, টেক্সট অ্যাক্সেস করতে পারেন আমাদের ব্লগ পোস্ট বা শিরোনাম, এবং সরাসরি উপাদান তৈরি সবটা প্রায় কাছাকাছি কোন কোড. সুতরাং যে ঐন্দ্রজালিক উপাদান এক. এবং এই বর্গ একবার বায়ু আরো সম্পূর্ণরূপে পালকযুক্ত করা হয়, আমরা সম্পর্কে তথ্য অন্তর্ভুক্ত করা হবে কি এটা মন্তব্য তাই, এর সাথে সম্পর্কিত করা হয়. এছাড়াও একটি ফাংশন তৈরি তাই আসলে আমরা করতে পারেন সরাসরি URL- এ পেতে একটি ব্লগ পোস্টে পৃষ্ঠার. কুল. যে সম্পর্কে কোন প্রশ্ন? না. কুল. তাই এখন আমরা আমাদের মডেল আছে, আমরা যে একটি নিয়ামক তৈরি করতে চান এই মডেলের সঙ্গে ইন্টারফেস করতে পারবেন, এবং পরবর্তীকালে ডাটাবেস. আমরা একটি বর্ণন এ নিতে হলে তাই BlogController, আপনি পাবেন আছে না যে লক্ষ্য এই মুহূর্তে এখানে অনেক. আছে সব একটি সূচক ফাংশন যে হোম পৃষ্ঠা তৈরি করে, কিন্তু কিছু ছাড়া এখনো আছে প্রদর্শন. প্রথম ফাংশন তাই আমরা তৈরি করতে যাচ্ছেন যে পারবেন যে এক একটি ব্লগ পোস্ট তৈরি করা. সুতরাং আমরা একটি ঘোষণা করতে যাচ্ছেন newPost নামক নতুন ফাংশন. এবং এখানে কেবল ভিতরে, আমরা চলুন এই পৃষ্ঠার লেআউট সেট একটি সংস্করণ প্রদান করা, আপনি CS50 থেকে প্রত্যাহার করা হলে, blog.new নামক এই টেমপ্লেট, যা আমরা একটি সামান্য বিট তৈরি করতে যাচ্ছেন. আপনি লাইন ছয় এখানে বিজ্ঞপ্তি পাবেন যে আমরা, বিন্যাস এই পরিবর্তনশীল নির্দিষ্ট. এবং আমরা দেখব যদি দেখেছে ফোল্ডার এ, একটি লেআউট ফোল্ডার আছে, যা একটি খুব মৌলিক HTML ফাইল অন্তর্ভুক্ত করা হয়েছে. এবং নোট, আপনি বিজ্ঞপ্তি পাবেন আমরা এই ধারক আছে এখানে কন্টেন্ট উৎপাদ যে. আমাদের টেমপ্লেট ভিতরে তাই আমরা কি করতে যাচ্ছেন হতে যাচ্ছে কি তৈরি হয় এই বিন্যাস মধ্যে সরাসরি প্রতিস্থাপিত. তাই আমরা যদি আমরা রেন্ডার করতে চান যে বলেন একটি টেমপ্লেট blog.new বলা হয়. কিন্তু ব্লগ ভিতরে আছে, এখনো এই নতুন টেমপ্লেট. সুতরাং আমরা একটি তৈরি করতে যাচ্ছেন ফাইল new.blade.php বলা হয়. এই Laravel বলে যে এই পিএইচপি ফাইল করা উচিত সঙ্গে অনুষ্ঠিত হবে ফলক টেমপ্লেট ইঞ্জিন. সুতরাং এই একটি মোটামুটি হয় সহজবোধ্য ফাইল. এটা যার দ্বারা ফর্ম হতে যাচ্ছে আসলে আমরা একটি ব্লগ পোস্টে যোগ করুন. থেকে এখানে জাদু তাই উত্তরাধিকার হেই, যে হয়. আমরা যে নির্দিষ্ট করতে চান অধ্যায়, বিষয়বস্তু অধ্যায় এখানে, যা অঙ্কিত হয় section এবংstop দ্বারা. তাই কি মধ্যে এখানে আছে যাচ্ছে মাস্টার বিন্যাস মধ্যে প্রতিস্থাপিত করা. এবং এখানে আমরা কাজ করতে চান কি খুব সহজভাবে একটি নতুন HTML ফাইল তৈরি. এর মাত্র একটি দ্রুত শিরোনাম যোগ করা যাক. একটি ব্লগ পোস্টে যোগ করুন. এবং এটি মধ্যে, আমরা করছি একটি ফর্ম তৈরি করতে যাচ্ছে. এই ফর্ম একটি কর্ম আছে যাচ্ছে. এবং এই কিছু হতে যাচ্ছে আমরা পরে মধ্যে প্রতিস্থাপন যে, এবং আমরা দেখতে পাবেন রাউটিং এখানে মধ্যে ফিট করে. কিন্তু আমরা শুধু এখন জন্য নির্ধারণ করতে যাচ্ছেন এই রুট দিয়ে একটি URL- এ যে যায় createPost থেকে. এবং তারপর এই যাচ্ছে পদ্ধতি পোস্ট আছে. এখানে মধ্যে, আমরা চলুন দুটি ক্ষেত্র আছে. Div class = "ফর্ম-গ্রুপ". আমরা বুটস্ট্র্যাপ সিএসএস লাইব্রেরি ব্যবহার করছেন অনুগ্রহপূর্বক টুইটার দ্বারা উপলব্ধ. তাই আমরা এই দুটি তৈরি করতে যাচ্ছেন. তাই এই প্রথম ইনপুট যাচ্ছে শিরোনাম হতে. তাই ইনপুট নাম = "শিরোনাম". বর্গ = "formcontrol". টাইপ = "টেক্সট". আমি একটি স্থানধারক = "শিরোনাম" যোগ করা যাচ্ছে না. এবং তারপর দ্বিতীয় এক একটি টেক্সট এলাকা হতে যাচ্ছে. = "বিষয়বস্তু" নাম দিন. বর্গ = "formcontrol". এবং স্থানধারক = "এখানে লিখুন". এখন পর্যন্ত আমরা যেতে. পরিশেষে, আমরা চলুন একটি দ্রুত জমা বাটন যোগ করুন. টাইপ = "জমা দিন" বর্গ = "বিটিএন বিটিএন প্রাথমিক". সুতরাং এই সব বুটস্ট্র্যাপ বৈশিষ্ট্য তাই এই পাড়া করা যেতে পারে যে এর একটি উপায় যে আউট ব্যবহারকারী যাও শিকার, বরং নগ্ন HTML এর চেয়ে. তাই আমরা এখানে নিয়ামক সংজ্ঞায়িত করেছি. আমরা একটি খুব সহজ দৃশ্য সংজ্ঞায়িত করেছি. কিন্তু কি অনুপস্থিত হয় যোজক কলা. তাই এই সময়ে, Laravel কিভাবে কোন ধারণা আছে আসলে আমরা চলুন এই নিয়ামক অ্যাক্সেস. সুতরাং এই একটি সংজ্ঞায়িত করা হয় ফাইল routes.php বলা হয়. এবং ডান এখন, আমরা এক রুট আছে. যা আমরা যেতে যখন হয় এই ওয়েব সাইটের জন্য বাড়িতে পথ, এটা রেন্ডার করতে যাচ্ছে সূচক নিয়ামক. তাই আমরা এখানে বাস্তবায়ন করা হয় না প্রয়োজন কি আমাদের জন্য একটি নতুন রুট একটি পোস্ট তৈরি করতে. সুতরাং আমরা এই পদ্ধতি ব্যবহার যা নির্দিষ্ট পেতে একটি ব্যবহারকারী করার চেষ্টা করে যে এই বিশেষভাবে page-- পেতে পোস্ট নতুন page-- কাট আমরা কি করতে যাচ্ছেন বলা নিয়ামক ব্যবহার করা হয় BlogController নতুন পোস্ট. আমরা শুধু তৈরি এক. এবং তারপর আমরা চলুন newPost হিসাবে এটি ওরফে করতে. আমরা অন্য তৈরি করতে যাচ্ছেন অল্প ফাংশন. কিন্তু অধীনে এখানে কি "হিসাবে" কি কি আমরা মধ্যে প্রতিস্থাপন করতে পারেন আমাদের ফলক টেমপ্লেট. তাই এখন জন্য, এর যাক আসলে রুট বলে. সুতরাং আমরা চলুন একটি নিয়ামক তৈরি করতে যাতে আমরা এই পোস্ট তৈরি করতে পারেন. যদি তাই পাতা পোস্টে একটি ব্যবহারকারী পোস্ট আমরা কি করতে যাচ্ছি করছেন, নতুন কাট একটি নিয়ামক ব্যবহার করে আমরা খুব শীঘ্রই তৈরি করতে যাচ্ছেন createPost এ BlogController বলা হয়. এবং আমরা ওরফে চলুন createPost হিসাবে এই. কুল. কোন প্রশ্ন? কুল. সুতরাং আসুন আমরা এ পর্যন্ত কি চালানো যাক. আমরা পিএইচপি শিল্পী না, তাই যদি পরিবেশন করা আমরা ত্রুটি প্রচুর দেখতে হবে. আমরা একটি ভালো আছে তাই এটা দেখে মনে হচ্ছে রুটে বাক্য গঠন ত্রুটি লাইন 27. অই. একটি সেমিকোলন অনুপস্থিত. সুতরাং আমরা 8,000 যান, আপনি এখানে এখনো কিছুই দেখতে পাবেন. তাই এই ডিফল্ট হোম পৃষ্ঠা. আমরা পোস্ট করতে যান কিন্তু হেই, নতুন কাট. এটা আমরা শুধু তৈরি ফর্ম হবেন. ঠিক এখন, আমরা না কার্যকারিতা বাস্তবায়িত আমরা টিপুন যখন বোতাম জমা দিন. আমরা এ ক্লিক করুন, যদি তাই করুন বাটন, এটি একটি ত্রুটি চালানো যাচ্ছে. কিন্তু আমরা কোড চলুন ঠিক এখন, অবিকল কি আমরা যখন একটি ব্যবহারকারী কাজ করতে চান এই ফর্ম জমা. তাই এর যে কাজ করতে দিন. ফিরে কন্ট্রোলার ফাইল যান. আমরা কি করতে যাচ্ছেন এই নতুন ফাংশন বাস্তবায়ন যে আমাদের একটি পোস্ট তৈরি করতে পারবেন. নতুন ফাংশন ঘোষণা. জন ফাংশন createPost. এবং এই ফাংশন একটি হতে যাচ্ছে তুলনায় আরো পরিশীলিত সামান্য বিট কি আমরা আগে. কিন্তু আপনি আমরা পারব না যে এখানে দেখতে পাবেন আসলে কোনো এসকিউএল লিখতে যাচ্ছি. ORM, বলিয়ে ORM, অনুমতি দিতে যাচ্ছে আমাদের কিছু করি উপায় আরো একটি মার্জিত উপায়. তাই আমরা একটি নতুন পোস্ট তৈরি করতে যাচ্ছেন. এবং এখানে আমরা করছি একটি নতুন অবজেক্ট instantiating মডেল থেকে যে আমরা শুধু তৈরি, পোস্ট মডেল. এবং কি আমরা করতে যাচ্ছেন সেট করা হয় এই ব্যবহার করে কিছু শিরোনাম অ্যাট্রিবিউট আমরা সার্ভার থেকে পাওয়া যে. তাই এই অনুরূপ কি আমরা CS50 ফাইন্যান্স মধ্যে আগে আমরা কি করতে হবে, যেখানে সুপার ব্যবহার করে গ্লোবাল পোস্ট শিরোনাম খুঁজছেন. তাই Laravel কিছু স্যানিটেশন প্রদান এবং যে কোন বস্তু এই সাহায্যকারী ফাংশন ব্যবহার করে. সুতরাং আমরা এই পরিবর্তে ব্যবহার করার জন্য পছন্দ করেন পিএইচপি থেকে এই খুব মৌলিক কাঁচা ফর্ম. এবং তখন আমরা কি করতে যাচ্ছেন সেট করা হয় ইনপুট এটি বিষয়বস্তু কন্টেন্ট পেতে. আমরা আসলে মোড়ানো চলুন একটি সহায়ক ফাংশন এই যে পিএইচপি nl2br, বলা প্রদান করে যা নতুন লাইন, NLS, BRS মধ্যে, ব্রেক সক্রিয় আমরা আসলে আছে যাতে এটি মধ্যে বিভিন্ন অনুচ্ছেদ. এবং পরিশেষে আমরা চলুন কি কি এই পোস্টে সংরক্ষণ করা হয়. সুতরাং আমরা ফাংশন কল এই মডেল সংরক্ষণ করুন. আমরা পোস্টে সংরক্ষণ চলুন. এবং আমরা কি করতে যাচ্ছেন পরিশেষে কি বিশেষভাবে ব্যবহারকারী পুনর্নির্দেশ করা হয় আমরা চলুন যা রুট viewPost দ্বারা, খুব শীঘ্রই ওরফে তৈরি. এবং আমরা আর্গুমেন্ট পাস করতে যাচ্ছেন আইডি, এই নতুন পোস্ট এর আইডি হচ্ছে. গ্রেট. তাই এখন আমরা আসলে যান এবং এই রান. আমরা একটি নতুন পোস্ট যোগ চলুন. এর এই সেমিনারে 50 বলে. এবং নিশ্চিত, বলে. Asdl. যাই হোক না কেন. কন্টেন্ট কিছু বাছাই করা. এবং এটা জমা দিন. এবং আমরা যে বিজ্ঞপ্তি পাবেন, হেই. রুট নির্ধারিত না. কিন্তু আমরা পিএইচপি মাই এডমিন কটাক্ষপাত করা এবং যদি কি না তা আমাদের ফাংশন জন্য চেহারা কিছু করেনি. Blog50 পোস্ট তাকান. আমরা হেই, যে বিজ্ঞপ্তি পাবেন. আসলে, আমরা শুধু যে ব্লগ তৈরি হয়নি নির্দিষ্ট টাইম-স্ট্যাম্প সঙ্গে পোস্ট করুন. তাই এখন ফিরে যান এবং আসলে তৈরি করা যাক আমাদের নিয়ামক অন্যান্য ফাংশন, বিশেষভাবে viewPost নিয়ামক. তাই পাবলিক ফাংশন viewPost. তাই এখানে আমরা কি করব, এর পরিবর্তে খালি বন্ধনী হচ্ছে, আমরা আইডি পাস করতে চাইবেন আমরা তৈরি করছি যে পোস্ট. এবং এখানে থেকে কি আমরা করতে যাচ্ছেন আসলে এটি জন্য ডাটাবেস অনুসন্ধান করা হয়. সুতরাং আমরা পোস্ট না, নামক একটি ফাংশন আছে আমাদের যে আইডি দ্বারা অনুসন্ধান করতে পারবেন খুঁজুন. বিশেষ করে, আসলে, আমরা চলুন বলা হয় এই একটি বিকল্প সংস্করণ ব্যবহার আমাদের যা করতে পারবেন খুঁজে অথবা ব্যর্থ, এই ফাংশন আউট প্রস্থান করার জন্য, আইডি যদি একটি ব্যতিক্রম নিক্ষেপ আমরা উপস্থিত না পাস. এবং তারপর আমরা কিছু করতে যাচ্ছেন আমরা আগে কি কি অনুরূপ যেখানে আমরা বিষয়বস্তু সেট এই পৃষ্ঠার হতে এই নতুন দৃশ্য অনুষ্ঠিত সংস্করণ আমরা, blog.view তৈরি করতে যাচ্ছেন যা. এবং আমরা মধ্যে পাস করতে যাচ্ছেন এটিকে ঠিক রেন্ডার CS50 মধ্যে পছন্দ ভেরিয়েবলের একটি অভিধান ফাংশন. এই মিশুক অ্যারে কি টেমপ্লেট মধ্যে ভেরিয়েবল হয়ে. সুতরাং আমরা পোস্ট করতে যাচ্ছেন. তাই পরোক্ষভাবে পোস্ট পাস যে আমরা ডাটাবেস থেকে অনুসন্ধান করেছি. . এখন কি আমরা চলুন কি এই দৃশ্য তৈরি হয় আসলে আমরা দেখতে পারেন, যাতে আমরা তৈরি করেছি যে ব্লগ পোস্ট. সুতরাং আমরা একটি তৈরি করতে যাচ্ছেন ফাইল view.blade.php বলা হয়. তাই এই টেমপ্লেটের ভিতরে, আমরা কি করতে যাচ্ছেন একটি সহজ পাতা একত্র করা হয় আমাদের বিষয়বস্তু প্রদর্শন করতে পারবেন. আমরা অধ্যায় সুতরাং, যে কন্টেন্ট এর আগে. বন্ধ করুন. এবং আমরা কি চলুন এখানে মধ্যে কাজ করতে হয় এই পৃষ্ঠা প্রদর্শন করতে কিছু এইচটিএমএল লিখুন. সুতরাং আমরা একটি অভিনব সঙ্গে মোড়ানো চলুন নতুন HTML5 এর উপাদান ধারা বলা হয়. এবং এখানে, আমরা চলুন একটি হেডার যেখানে আছে আমরা কেবল একটি H1 আছে চলুন, যা পোস্ট শিরোনাম রয়েছে. তাই এখানে, আমরা এই তাকান ডবল কোঁকড়া বক্রবন্ধনী স্বরলিপি, এই মূলত করতে হবে পিএইচপি পোস্টের শিরোনাম প্রতিধ্বনি. সুতরাং এটি একটি সহায়ক সাঁটে লেখার Laravel আমাদের উপলব্ধ করা হয়. তাই আমরা ব্যবহার করতে যাচ্ছেন পরিবর্তে এই স্বরলিপি. এবং এখানে, আমরা চলুন এটা বিষয়বস্তু প্রিন্ট আউট. এবং এখানে, আমরা চলুন পোস্ট কন্টেন্ট না. এবং আমরা কি নীচে নিচে কি করতে যাচ্ছে একটি পাদচরণ তৈরি হয়. এবং পাদলেখ মধ্যে, আমরা চলুন এই পোস্ট করা হয়েছে যখন প্রথম প্রদর্শন. তাই এই পোস্ট এ তৈরি করা হয়েছে. এবং Laravel একটি সত্যিই চমৎকার ব্যবহার তারিখ লাইব্রেরি কার্বন বলা হয়. সুতরাং আমরা আসলে কিছু বলা কি করতে পারেন আপনি আগে যা দেখেছি difforHumans. আমরা যখন পোস্ট. এটা বলবো মত, পাঁচ সেকেন্ড আগে. সুতরাং এই একটি সত্যিই চমৎকার Laravel এর কার্যকারিতা. এবং পরিশেষে, আমরা চলুন এই পাদচরণ বন্ধ. তাই এখন আমরা ফিরে যান হোম পেজ আমরা চলুন এখানে এখনো কারণ কিছুই দেখতে আমরা হোম পেজে কোডেড না. কিন্তু আমরা স্ল্যাশ এক পোস্ট করতে যান, আমরা একটি ব্যতিক্রম দেখতে যাচ্ছেন. কেউ কি জানেন কেন আমরা একটি ব্যতিক্রম দেখতে? আমরা কি নাই? কোন ধারণা? সুতরাং আমরা কি তার আগে আমাদের জন্য আসলে আমরা পেতে কিভাবে সংজ্ঞায়িত করতে বিশেষ কন্ট্রোলার? স্পিকার: 1 রুট? ERIC Ouyang: হ্যাঁ. তাই আমরা এখনও রুট নির্ধারণ করা আছে. সুতরাং আমরা routes.php ফিরে যান এখানে. আপনি যে আমরা বিজ্ঞপ্তি পাবেন আসলে সংজ্ঞায়িত করা হয়েছে কিভাবে আমরা পেতে যাচ্ছেন এই নিয়ামক. তাই এখন আমরা এই রুট নির্ধারণ করতে যাচ্ছেন. এটা মোটামুটি সহজবোধ্য আমরা আগে কি কি অনুরূপ. কিন্তু আমরা এখানে লক্ষ্য করা যাচ্ছে করছেন কি আমরা একটি স্থানধারক আছে চলুন যে. আমরা route.get স্ল্যাশ পোস্ট আইডি যদি তাই. তাই আইডি এখন যাচ্ছে কি নিয়ামক মধ্যে পাস করা হবে. এটি ব্যবহার করা যাচ্ছে নিয়ামক যে আমরা শুধু তৈরি, viewPost এ BlogController. এবং আমরা চলুন viewPost হিসেবে ওরফে এই. গ্রেট. তাই এখন আমরা এই রুট তৈরি করতে যাচ্ছেন. তাই এখন আমরা এখানে যান এবং এই পৃষ্ঠাটি রিফ্রেশ, আসলে আমরা আমাদের নতুন ব্লগ পোস্ট আছে. তাই এই আমরা আগে তৈরি করা হয়. অত্যন্ত সহজ পাতা, কিন্তু প্রদর্শন আমরা শুধু তৈরি ব্লগ পোস্ট. কুল. এবং আমরা আসলে পুরো মধ্য দিয়ে যেতে যদি একটি নতুন ব্লগ পোস্ট তৈরি করার প্রক্রিয়া, আমরা যে সব বিজ্ঞপ্তি পাবেন সঠিকভাবে পুননির্দেশনা. আমি যদি বলি, "হাই. আমি জনাথন ত্যান আছি. " "এই আমার ব্লগ পোস্ট.", বলে এবং তা জমা দিতে, এই তৈরি করা হবে আইডি 2 সঙ্গে এই নতুন ব্লগ পোস্ট, আমরা ছিল তা থেকে যা বাড়তি পূর্বে এবং সঠিকভাবে প্রদর্শন করা হয়. জট্টিল. কোন প্রশ্ন? হ্যাঁ? স্পিকার 2: Laravel হ্যান্ডেল sanitization এবং আপনার জন্য সবকিছু? ERIC Ouyang: হ্যাঁ. তাই আমরা আগে যখন দেখে আমরা, ইনপুট কোলন মলাশয় পেতে হয়নি যে কোনো এসকিউএল sanitates ইনজেকশনও এবং যে কোন বস্তু আমরা যদি সঞ্চালন করতে পারে যে আমরা ওয়েবসাইট এর একটি দূষিত ব্যবহারকারী হন. তাই Laravel অনেক পরিচালনা দৃশ্যগুলো পিছনে যে. ভাল প্রশ্ন. তাই এর হোম পেজে কটাক্ষপাত করা যাক. আমরা প্রথম ফিরে যান তাই হোম পৃষ্ঠার জন্য নিয়ামক, যদি আপনি এটি বিজ্ঞপ্তি পাবেন এখানে অনেক না. আপনি আমরা পারব না বিজ্ঞপ্তি পাবেন এই নিয়ামক মধ্যে ক্ষণস্থায়ী কিছু বিশেষ সহায়ক. এটা শুধু এই সূচক ফাইল আছে. সুতরাং এর মধ্যে পাস সহায়ক এই কিছু. এবং বিশেষভাবে, আমরা করছি পোস্ট পাস করতে যাচ্ছে. এবং Laravel পারবেন সব পোস্ট করতে যা আমাদের সব পোস্ট পেতে অনুমতি দেবে. এখন আমরা ফিরে যান index.php, আপনি হেই, দেখতে পাবেন. কিছুই এখানে এখনো. কিন্তু আমরা কি চাই এখানে কি আসলে মাধ্যমে বারবার করা হয়, পোস্ট উপর একটি foreach লুপ যে আমাদের পোস্ট প্রিন্ট আউট করতে পারবেন. সুতরাং হিসাবে foreach পোস্ট আমরা কি করতে চান পোস্ট, কন্টেন্ট প্রিন্ট আউট হয় ব্লগ পোস্টের. কিন্তু আপনি বিজ্ঞপ্তি পাবেন এক জিনিস যে আসলে আমরা যে কোড অধিকাংশ লিখেছেন ইতিমধ্যে, view.blade.php মধ্যে. তাই আসলে আমরা কি করতে যাচ্ছেন কি ফলক একটি চমৎকার সহায়ক বৈশিষ্ট্য ব্যবহার এবং এই সাধারণ কোড আউট ফ্যাক্টর. তাই আমরা এখানে যান. আমরা এই কন্টেন্ট নিতে যাচ্ছেন এখানে ডান, এবং আমরা কি করতে যাচ্ছেন কি একটি নতুন ফোল্ডার তৈরি করা হয়. এর ঠিক partials কল দিন. এবং এখানে, আমরা চলুন একটি post.blade.php তৈরি. তাই এখানে, আমরা পথ খুঁজে করেছিল যা আমরা এই পোস্ট প্রদর্শন করতে চান. এবং এখানে আমরা পরিবর্তে করব আসলে সরাসরি যে এইচটিএমএল হচ্ছে, আমরা এই নির্দেশ ব্যবহার করতে যাচ্ছেন বলা blog.partials.post অন্তর্ভুক্ত. এবং আমরা এখানে কাজ করতে যাচ্ছেন কি পৃষ্ঠার পোস্টে পাস হয়. তাই এখন আমরা এখানে ফিরে যান, আমরা করব কার্যকারিতা এখনও যে লক্ষ্য একই. কিন্তু এখন আমরা এই আছে , এই HTML কোড করেছিল. সুতরাং আমরা সূচক এটি ব্যবহার করতে পারেন. তাই এখানে, এই খুব সহজবোধ্য. আমরা কি সব অন্তর্ভুক্ত হয় blog.partials.post এবং অ্যারে. এবং কোথাও আগে, আমরা পোস্ট না. তাই এখন আমরা ফিরে যান হোম পৃষ্ঠা, আমরা হেই, দেখতে পাবেন. আমরা সব একটি তালিকা আছে আমরা আগে যে ব্লগ পোস্ট. আমরা কিছু "যদি" যোগ করতে পারেন শর্ত এবং "অন্য" শর্ত তাই আমরা যদি না থাকে যে ব্লগে কিছু, আমরা সহায়ক কিছু প্রদর্শন করতে চান. আরে, ভালো লেগেছে. ব্লগে এখনো কোনো বিষয়বস্তু নেই. এবং আসলে আপনি না তাকান GitHub উপর ডিস্ট্রিবিউশন কোড, আপনি যে আমরা কিভাবে একটি উদাহরণ দেখতে পাবেন. কুল. কোন প্রশ্ন? হ্যাঁ. স্পিকার 2: আমি শুধু অনুমান একটি মৌলিক প্রশ্ন. পিছনে রুট এ. ERIC Ouyang: হ্যাঁ. আমরা রুট কটাক্ষপাত করা হবে. স্পিকার 2: না কোথায় uses.blogcontroller এ, পোস্ট তৈরি আমাদের যে কি সরাসরি না? ERIC Ouyang: হ্যাঁ. হ্যাঁ. স্পিকার 2: অথবা কি যে সব হয় ERIC Ouyang: তাই বলে, দেখব উদাহরণস্বরূপ, ঠিক এই রুট. প্রথম অংশ প্রকৃত ব্যবহারকারী যেতে হবে URL. এবং এখানে এই অ্যারে, মিশুক অ্যারে, সংজ্ঞায়িত আমরা চাই কিভাবে এটি প্রতিক্রিয়ায় আবেদন কাজ. তাই ব্যবহার নিয়ামক, ফাংশন যে আমরা যখন একটি কল করতে চান ব্যবহারকারী এই URL যায়. তাই viewPost ছিল এখানে একটি আমরা ভিতরে সংজ্ঞায়িত যে ফাংশন BlogController-- এর স্পিকার 2: আমি দেখতে. ERIC Ouyang: যে আমরা এলাকার মধ্যে আসলে একটি দৃশ্য রেন্ডার করতে পারে, কিছু গণনার সঞ্চালন SQL ডাটাবেস সঙ্গে যোগাযোগ করার জন্য. স্পিকার 2: ঠিক আছে. তারপর এবং অন্যান্য: ERIC Ouyang অংশ, "হিসাবে" আমরা ব্যবহার করি যে একটি ওরফে হয়. আমরা যখন লক্ষ্য যদি তাই আমরা ফর্ম তৈরি, আপনি যে URL বিজ্ঞপ্তি পাবেন :: routecreatePost. সুতরাং প্রকৃত মধ্যে পরিপূরক URL- এ যাতে আমরা হার্ড পারব না এই কোডিং তাই আমরা তা পরিবর্তন করতে পারেন একবার, আমরা নামান্তর করতে চেয়েছিলেন বলে. পরিবর্তে পোস্ট স্ল্যাশ নতুন, আমরা, পি মত কাজ করতে চান শুধু পরিষ্কার করা নতুন কাট আমাদের URL গুলি একটি বিট আপ. আমরা বরং এক স্পট এটি পরিবর্তন করতে হবে সব বিভিন্ন ফাইল জুড়ে চেয়ে. কুল. এটা ভাল. তাই এখন আমরা একটি খুব মৌলিক ব্লগ প্ল্যাটফর্ম. আমরা সম্ভবত তাই একটি বাটন যুক্ত করতে চান যে আমরা আসলে নতুন পোস্ট তৈরি করতে পারেন. আমরা দেখব, তাই যদি বিন্যাস মাস্টার, আমরা শিরোলেখ রাইট নামক একটি অধ্যায় আছে আমরা শুধু উপরে এ সংজ্ঞায়িত করেছি যে. সুতরাং আমরা বোতাম যোগ করতে পারেন হেডার উপরে. তাই আসলে আমরা, index.blade.php যান কি এখানে ভিতরে যায় তা নির্ধারণ করা হয়. তাই এই শিরোলেখ ডান অধ্যায়, আমরা কি করতে যাচ্ছেন যেতে একটি বাটন যোগ করা হয় রুট নতুন পোস্ট দ্বারা সংজ্ঞায়িত URL. শুধু তা পরিষ্কার করা এবং এটা সুন্দর এবং সব বুটস্ট্র্যাপ, আমরা করতে যাচ্ছেন এই একটি ডিফল্ট বোতাম. এর মজা করার জন্য এটা বড় করা যাক. এবং এটা ভিতরে, আমরা কিছু টেক্সট লাগাতে পারে. কিন্তু কি বুটস্ট্র্যাপ উপলব্ধ Glyphicons হয়. তাই আসলে আমরা যে যোগ করতে পারেন আমরা আগে দেখেছি যে সুন্দর পেন্সিল. Glyphicon. Glyphicon-পেন্সিল. তাই এই আমাদের করা করার অনুমতি দেবে পরিবর্তে একটি টেক্সট আইকন. এখন আমরা বন্ধ না হলে, এই এই বিভাগে নির্ধারণ করা হবে. এবং, হেই. আমরা আমাদের সংযোগ করে একটি সুন্দর বাটন আছে সরাসরি একটি ব্লগ পোস্টে পাতা যোগ করুন. সুতরাং আমরা একটি মোটামুটি সহজ ব্লগ আছে. আমরা এটা স্টাফ যোগ করতে পারেন. কিন্তু আমরা সাধারণত কি আশা ব্লগ থেকে মন্তব্য করা হয়. আমাদের আছে তাই এটা সত্যিই গুরুত্বপূর্ণ অন্য কেউ একটি ওয়েবসাইট পরিদর্শন যদি বলে, এবং সত্যিই পোস্ট ভালো লেগেছে যে তারা আলোচনা নিযুক্ত করতে পারেন পৃষ্ঠা দেখার জন্য যারা অন্য মানুষের সঙ্গে. তাই আমরা গিয়ে তৈরি করতে যাচ্ছেন একটি নতুন ডাটাবেস টেবিল এবং নতুন মডেল আমরা যুক্ত করতে পারেন পোস্ট সঙ্গে মন্তব্য. সুতরাং প্রথম পদক্ষেপ, ঠিক আগের মতই, আমরা একটি মাইগ্রেশন চালানোর জন্য প্রয়োজন. আগে মত তাই, আমরা কি পিএইচপি কারিগর স্থানান্তর করুন: না. এবং আমরা এক তৈরি করতে যাচ্ছেন create_comments_table বলা হয়. এটি একটি ফাইল তৈরি হবে যে আমাদের নতুন মাইগ্রেশন আছে. এবং আমরা মত, চলুন আগে, একটি নতুন টেবিল নির্ধারণ করুন. তাই স্কিমা :: একটি তৈরি টেবিল মন্তব্য বলা হয়. এখানে এই ফাংশন. এবং এই টেবিল ভিতরে কি আমরা প্রথম যাও যাও, চলুন মত আগে, একটি আইডি দায়িত্ব অর্পণ করা. আইডি বাড়তি. আমরা ব্যবহারকারীদের সংযুক্ত করার অনুমতি দেয় চলুন একটি বিশেষ মন্তব্য সঙ্গে তাদের নাম. আমরা কিছু কন্টেন্ট আছে চলুন যে এই, টেক্সট কন্টেন্ট সঙ্গে বরাবর যায়. এবং এখানে আমরা করতে যাচ্ছেন কি কি ভিন্ন কিছু. আমরা একটি পূর্ণসংখ্যা তৈরি করতে যাচ্ছেন যে POST_ID বলা হয়, যা কি পোস্ট বোঝান যাচ্ছে একটি বিশেষ মন্তব্য সঙ্গে যায়. উপরন্তু, আমরা আসলে চলুন এই একটি বিদেশী কী বাধ্যতা সেট. তাই মাইএসকিউএল যে জোরদার করা হবে. আমরা চেষ্টা করছি না মন্তব্য সংখ্যা দায়িত্ব অর্পণ করা আমরা না থাকে তাহলে 5 5,000 পোস্ট এটি 5,000 পোস্ট ছিল. তাই আমরা এখানে কি করবেন, আমরা বিদেশী POST_ID না সঙ্গে যুক্ত হতে যাচ্ছে টেবিল পোস্ট থেকে আইডি ক্ষেত্র. এবং আমরা আসলে কিছু করতে হবে অন্য সহায়ক, onDelete হয়. আমরা কিছু মুছে দিন যদি তাই ডাটাবেস থেকে পোস্ট, আমরা নির্ঝর করতে চান পাশাপাশি মন্তব্যের জন্য মুছে ফেলা হবে. এটা খুব সহায়ক নয় কারণ আমাদের পোস্টে মন্তব্য করতে জন্য যে অস্তিত্ব নেই. এবং পরিশেষে, আগে ভালো, আমরা করছি এই সময় স্ট্যাম্প সেট যাচ্ছে. এবং আগের মতই, আমরা চলুন বিপরীত মাইগ্রেশন করা আছে মন্তব্য টেবিল ড্রপ. তাই এখন আমরা ফিরে যান এখানে, আমরা চলুন এই মাইগ্রেশন, শিল্পী স্থানান্তর চালানোর জন্য. এবং এখন এটি এই প্রয়োগ এর আমরা শুধু তৈরি মাইগ্রেশন. আমরা একটি চেহারা পিএইচপি মাই এডমিন এ যদি তাই আমরা এখন, আসলে, না আছে একটি মন্তব্য টেবিল আছে আমরা শুধু নির্দিষ্ট যে কাঠামো. আগে মত সুতরাং, আমরা করছি একটি নতুন মডেল তৈরি করতে বিমূর্ত এসকিউএল টেবিল থেকে আমরা শুধু তৈরি. তাই এর একটি নতুন ফাইল যোগ করা যাক. আমরা এটা comment.php কল চলুন. এবং এই আসলে মোটামুটি হতে যাচ্ছে সামান্য পরিবর্তনের সঙ্গে সহজবোধ্য কি থেকে আমরা আগে. তাই বর্গ মন্তব্য বলিয়ে প্রসারিত করে. এবং আমরা কি চলুন সংজ্ঞায়িত করা হয় এখানে কি যে একটি ফাংশন অন্যান্য মডেলের সঙ্গে সম্পর্ক. সুতরাং আমরা একটি পোস্ট ফাংশন আছে চলুন এখানে এই সম্পর্ক ফেরৎ. তাই আমরা যে উল্লেখ করছি এই পোস্ট জন্যে, এক পোস্টে আছে বলে যে এই মন্তব্য জন্যে. এটি আসলে করা হয়েছে মডেল জন্য রাজধানী পি. এবং এখন শুধু অন্য উল্টানো উপর পাশ, আমরা হেই, যে বলার আছে. পোস্ট মন্তব্য আছে. তাই আমরা কি চলুন পাবলিক ফাংশন মন্তব্য নির্ধারণ করুন. এবং এখানে ফিরিয়ে দেওয়া হয় এই অনেক মন্তব্য আছে. তাই এখন আপনি magically আমরা একটি পোস্ট আছে, আমরা বৈশিষ্ট্য মন্তব্য পেতে পারেন এবং এটি সঙ্গে এটা পূরণ করবেন ডাটাবেস থেকে তথ্য. সুতরাং এর আসলে মাধ্যমে যান এবং আমাদের দেখুন ফাইল একটি নতুন বৈশিষ্ট্য যোগ করা যাতে আমরা করতে পারেন উভয় প্রদর্শন এবং মন্তব্য তৈরি. তাই আমরা একটি নতুন অধ্যায় সংজ্ঞায়িত করতে যাচ্ছেন. এর ঠিক এটি পৃথক যাক একটি অনুভূমিক নিয়ম সঙ্গে. অনুচ্ছেদ আইডি = "মন্তব্য". আমরা কি করতে যাচ্ছেন এখানে হয়, আগের মতই, সব মন্তব্য মাধ্যমে বারবার. তাই আসলে আমরা এই কাজ করতে কিভাবে, আমি হিসাবে উল্লেখ করেছে, মোটামুটি ঐন্দ্রজালিক. আমরা মন্তব্য করতে. এবং তারপর আমরা প্রতিটি জন্য এটা করতে পারেন মন্তব্য প্রতিটি উপর লুপ. এবং আমরা চলুন কি না, div class মন্তব্য নেই এবং আসলে আমরা চলুন এই মন্তব্য প্রিন্ট আউট. তাই হেই যে প্রদর্শন, ব্যক্তি নামের অনুমান করা মন্তব্য যারা এই comment-- পোস্ট বিন্দু বিন্দু বিন্দু বলেছেন. আমরা একটি ব্লক এই করা যাচ্ছেন উদ্ধৃতি, এটা সুন্দর চেহারা করা. এবং তারপর বিষয়বস্তু ব্লক উদ্ধৃতি মন্তব্য. এবং foreach. সুতরাং এখন এই লুপ যাচ্ছে সব মন্তব্য মাধ্যমে যে যুক্ত করা হয় প্রতিটি পোস্টের সঙ্গে এবং যারা মন্তব্য প্রতিটি প্রদর্শন. আমি নিচে অন্য বিভাগে যোগ করা যাচ্ছে না এখানে, পারবেন, যা আমাদের একটি মন্তব্য যোগ করুন. তাই h3 বর্গ. এখানে একটি শিরোনাম রাখুন. একটি মন্তব্য যোগ করুন. এবং আমরা একটি নতুন ফর্ম সংজ্ঞায়িত করতে যাচ্ছেন. আগে মত সুতরাং, আমরা করছি ফর্ম কর্ম করতে যাচ্ছে. এবং এখানে, নতুন কর্ম আমরা করছি একটি নতুন নিয়ামক নির্ধারণ যাচ্ছে যে আমাদের পোস্ট সাড়া করতে পারবেন মন্তব্য তৈরি করার জন্য অনুরোধ. তাই URL :: রুট createComment. আমি এখানে পরামিতি পাস করা যাচ্ছে না. পোস্ট আইডি যে আমরা মন্তব্য তৈরি করছেন. এবং এই তারপর পদ্ধতি ফর্ম পোস্ট হতে যাচ্ছে. এখন আমরা যোগ চলুন একটি দুটি ক্ষেত্র, ফর্ম গ্রুপ. এই সঙ্গে একটি ইনপুট হতে যাচ্ছে "নাম" এবং বর্গ = "ফর্ম নিয়ন্ত্রণ" নাম দিন, = "টেক্সট", এবং টাইপ স্থানধারক = "আপনার নাম." আমরা সংজ্ঞায়িত করতে যাচ্ছেন অন্য ফর্ম ক্ষেত্র, যা একটি টেক্সট হতে যাচ্ছে এলাকায় আমরা আগে ছিল. ঠিক আগের মতই, বিষয়বস্তু কল. Class = "ফর্ম নিয়ন্ত্রণ." স্থানধারক = "এখানে লিখুন." এবং ঠিক তাই যে আমরা আসলে তা জমা দিতে পারেন, টাইপ এবং বর্গ = জমা দিন "বিটিএন প্রাথমিক বিটিএন." ফর্ম বন্ধ করুন. এই কর্ম বন্ধ করুন. তাই এখন আমরা এই পাতা যেখানে রিফ্রেশ যদি আমরা, বলে, একটি বিশেষ পোস্ট আছে. আমরা সার্ভারের পুনরায় বুট করা আছে. পিএইচপি শিল্পী পরিবেশন করা. এই পুনরায় বুট করুন. আমরা রুট নির্ধারণ করা আছে. কিন্তু এখন জন্য, এর ঠিক এই নিতে আউট, যাতে আমরা আসলে আপনি প্রদর্শন করতে পারেন কি পাতা দেখে মনে হচ্ছে, এবং তারপর আসলে আমরা যে রুট তৈরি করব. তাই, হেই. আমরা এখানে এই নতুন ফর্ম নিচে আছে আমরা মন্তব্য তৈরি করতে পারেন. তাই এর আসলে একটি সংজ্ঞায়িত করা যাক নিয়ামক মধ্যে ফাংশন আমরা মন্তব্য যোগ করতে পারেন. এর ফিরে যাওয়া যাক. এবং blogcontroller.php মধ্যে, আমরা কি করতে যাচ্ছেন একটি নতুন ফাংশন তৈরি করা হয় মন্তব্য তৈরি হয়. জন ফাংশন createComment. এই একটি আছে যাচ্ছে পরামিতি, পোস্ট আইডি যে আমরা মন্তব্য করছি. এবং ভালো, আগে আমরা করছি প্রথম পোস্ট পেতে যাচ্ছে. তাই, findOrfail আইডি পোস্ট করুন. এর পরে, আমরা চলুন একটি নতুন মন্তব্য তৈরি. তাই = নতুন মন্তব্য. নাম = ইনপুট মন্তব্য :: নাম. মন্তব্য কন্টেন্ট = একই নতুন লাইন ইনপুট বিরতি মধ্যে :: কন্টেন্ট পেতে. এবং পরিশেষে, আমরা আছে চলুন পোস্টের সাথে এই মন্তব্য যুক্ত করুন. তাই আমরা ব্যবহার করতে যাচ্ছেন এই ফাংশন, মন্তব্য, যে আমাদের সংরক্ষণ করতে পারবেন এই সম্পর্ক. সুতরাং এখন এই মন্তব্য করতে হবে স্বয়ংক্রিয়ভাবে পোস্ট আইডি. আমরা এটা সেট করতে পারে নিজে, কিন্তু এই যতটা পড়া আরো সহজ ফাংশন যায়. এবং আমরা সঞ্চালন পর আমরা এই কাজ করতে চান ব্যবহারকারী পুনর্নির্দেশ হয় রুট viewPost দ্বারা নির্দিষ্ট সঙ্গে অ্যারের সঙ্গে পোস্ট আইডি এর প্যারামিটার. এবং এখন যে তাই এই আসলে ফাংশন, আমরা এই রুট নির্ধারণ করতে হবে. রুট :: পোস্ট. এবং এখন আমরা এই কল চলুন পোস্ট আইডি স্ল্যাশ মন্তব্য কাট. এরে নতুন ফাংশন ব্যবহার করে আমরা শুধু তৈরি. BlogController. CreateComment হিসেবে CreateComment. গ্রেট. তাই এখন আমরা এই পৃষ্ঠাটি রিফ্রেশ আশা যদি এবং একটি মন্তব্য, বলে, ডেভিড Malan মধ্যে যোগ করুন. "আশা করছি এই কাজ করে." জমা দিন. আমরা, আসলে, একটি আছে এই ব্লগ পোস্টে মন্তব্য. কুল. তাই এখন আমরা একটি মোটামুটি আছে কার্যকরী ব্লগ পোস্ট. আমরা শুধু চলুন তাই কয়েক tweaks যোগ আমরা আরো কিছু দরকারী আছে এই পোস্টে তথ্য. আমরা ফিরে যান তাই সামনে পাতা, আমরা কোন ধারনা আছে কিভাবে অনেক মন্তব্য এই পোস্ট এর প্রতিটি. তাই আসলে আমরা চলুন হয় না, আমাদের মডেল ভিতরে, পারবেন যে একটি সাহায্যকারী ফাংশন নির্ধারণ আমাদের মন্তব্য সংখ্যা উল্লেখ করতে একটি বিশেষ পোস্ট দিয়ে যান. সুতরাং আমরা তৈরি করতে যাচ্ছেন একটি সাহায্যকারী ফাংশন. জন ফাংশন. GetNumCommentsStr. সংখ্যা নির্দিষ্ট করে যাতে একটি পংক্তি এটি সঙ্গে বরাবর যেতে যে মন্তব্য. এবং কি আমরা করতে যাচ্ছেন বলে যে num ফাইলে = এই মন্তব্য গণনা. সুতরাং আমরা গণনা করতে যাচ্ছেন মন্তব্য সংখ্যা. এই সংখ্যা 1 এর সমান, আমরা করছি মাত্র 1 মন্তব্য ফিরে যাচ্ছে. অন্যথায় এবং তারপর, আমরা ফিরে আসতে চান num ফাইলে এবং মন্তব্য এর একত্রীকরণ, তাই আমরা pluralization সঠিক পেতে. শুধু এই একটি একক উদ্ধৃতি না. একটি মন্তব্য. এবং এখন আমরা এই ফাংশন ব্যবহার করতে পারেন সরাসরি আমাদের দেখুন ভিতরে. আমরা ফিরে যান তাই আমরা তৈরি যে আংশিক পোস্ট, এখন আমরা আসলে চান মন্তব্য সংখ্যা প্রদর্শন. তাই আমরা যা করতে পারেন কি না পোস্ট, এই ফাংশন ব্যবহার আমরা শুধু তৈরি করা যে মন্তব্য সংখ্যা প্রদর্শন. আমরা এখন, এটা রিফ্রেশ তাই আপনি যদি আসলে, না, প্রদর্শন সংখ্যা মন্তব্য যে এটি সঙ্গে বরাবর যান. আমরা যদি অভিনব হতে চেয়েছিলেন আসলে বিতরণ কোড তাকান, আমরা আসলে সংযুক্ত করতে পারেন মন্তব্য করার জন্য এই. আপনি যদি প্রত্যাহার, আমরা মধ্যে নির্ধারিত এই বিভাগে আইডি মন্তব্যগুলি যে দেখতে. সুতরাং আমরা আসলে লিঙ্ক চেয়েছিলেন সরাসরি মন্তব্য বিভাগে, কি আমরা এখানে কি একটি href হয় না রুট viewPost এর URL টি. পোস্ট আইডি এর অ্যারে আইডি পাস. এবং তারপর আমরা যেতে চান বিশেষভাবে মন্তব্য বিভাগে. এখানে একটি ট্যাগ বন্ধ করুন. তাই এখন আমরা এই রিফ্রেশ যদি পাতা, আমরা এই উপর ক্লিক করুন. আমরা সরাসরি যেতে হবে মন্তব্য বিভাগে. আমরা আর একটি পোস্ট ছিল, আপনি যা করতে পারেন আসলে এই বাউন্স নিচে দেখুন. কিন্তু আপনি তা যে বিজ্ঞপ্তি পাবেন না পৃষ্ঠার উপরের. কুল. গ্রেট. সুতরাং যে একটি মোটামুটি সহজবোধ্য সহজ কিছু উদাহরণ আপনি Laravel করতে পারেন যে. কিন্তু আপনি এখানে লক্ষ্য করা যাবে যে আমরা জিনিস অনেক কাজ করেছি কোড মোটামুটি সামান্য পরিমাণ সঙ্গে. Laravel আমাদের করার অনুমতি দৃশ্যগুলো পিছনে SQL কোয়েরি. এটা স্যানিটেশন না দৃশ্যগুলো পিছনে আমাদের জন্য. আমাদের এই সম্পর্ক করতে পারবেন খুব সহজেই আমাদের প্রয়োজন ছাড়া কোনো এসকিউএল করতে বিবৃতি যোগ দিতে কি পোস্ট দিয়ে মন্তব্য একত্রিত করা. আমাদের এই কাজ করতে পারবেন টেমপ্লেট উত্তরাধিকার তাই আমরা এই পাখির বাসা নির্ধারণ করতে পারবেন যে ফাইল তাই আমরা আমাদের নিজেদের পুনরায় করছি না শুধু আমরা যে ছিল যখন মত ব্লগ পোস্ট প্রদর্শন আমরা করতে হবে না যে কপি এবং পেস্ট. এবং আপনি এখান থেকে নির্মাণ করতে পারেন ক্রমবর্ধমান জটিল অ্যাপ্লিকেশন. আপনি কল্পনা করতে পারেন, তাহলে আমরা বাস্তবায়ন করতে চেয়েছিলেন লগ ইন, আমরা একটি তৃতীয় পক্ষের মধ্যে আনা, বলতে পারে আমাদের যে কাজ করতে পারবেন যে কাঠামো. তাদের একটি গুচ্ছ আছে যে সত্যিই সত্যিই, হয় মত কি করতে পারেন যে মহান, পাসওয়ার্ড পুনরুদ্ধার. এবং এটি আপনি একটি পাঠাব পাসওয়ার্ড ইমেল রিসেট করুন. আমরা অনুমতি বাস্তবায়ন করতে পারে , আমি একটি পোস্ট তৈরি করতে পারেন যাতে কিন্তু অন্য কেউ সম্পাদনা করতে পারেন না. আমরা বাস্তবায়ন করতে পারেন কার্যকারিতা পোস্ট মুছে দিন. কিন্তু আপনি আমরা প্রায় আছে এখানে দেখতে পারেন অনেক সব অপূর্ণাঙ্গ উপাদান সত্যিই কিছু নির্মাণ করতে, সত্যিই, গতিশীল এবং উত্তেজনাপূর্ণ ওয়েব অ্যাপ্লিকেশন. সুতরাং যে, আমি মনে করি আমরা ভাল মনে. আপনি কোন প্রশ্ন আছে? হ্যাঁ? স্পিকার 3: আপনি কিভাবে না স্ট্যাটিক কন্টেন্ট পেতে পারি? ERIC Ouyang: স্ট্যাটিক কন্টেন্ট. আমরা ছিল যখন সুতরাং আপনি যে আগে দেখেছি এখানে এই অধিকার, এই বিন্যাস বিষয়বস্তু, দেখুন, আমরা এই ছিল পরে এই অ্যারে ছাড়া. Blog.index, আমরা এই ছিল শুধু একটি স্ট্যাটিক ফাইল হিসাবে. আমরা পাস না, তাই যদি এটা বরাবর কিছু, এটা সরাসরি HTML উপস্থাপনা করব. কিন্তু আমরা এই মিশুক মধ্যে পাস হলে পরিবর্তনশীল যা পোস্ট অ্যারে, ডাটাবেস থেকে টানা, আমরা পাতা গতিশীল করতে পারেন. কুল. অন্য কোন প্রশ্ন? স্পিকার 3: আপনি কিভাবে তুলনা করে হয়ত কিছু অন্যান্য অপশন থেকে Laravel? ERIC Ouyang: অবশ্যই. হ্যাঁ. তাই Laravel যে হচ্ছে ÑÑ একটি মহান question-- ওয়েব অবকাঠামো জন্য অনেক বিকল্প. তাই পাগল নেভিগেশন রুবি জনপ্রিয় হয়. আমি টুইটার ব্যবহার করা হয় বিশ্বাস পাগল নেভিগেশন রুবি সঙ্গে বাস্তবায়িত. আমি তারা যেহেতু সুইচ করেছি মনে. FuelPHP নামক অন্য এক আছে. তাই পাগল নেভিগেশন রুবি রুবি ভাষা ব্যবহার করে এবং MVC জিনিস অনেক কার্যকরী আমরা এখানে দেখতে যে. FuelPHP অন্য পিএইচপি ফ্রেমওয়ার্ক হয়. জ্যাঙ্গো আমার প্রিয় এক. এটা পাইথন এর জন্য একটি ওয়েব কাঠামো. তাই আপনি যদি পাইথন আপনার ওয়েব অ্যাপ্লিকেশন লিখতে পারেন. সুতরাং এই বিকল্প একটি টন আছে. Laravel, আমি মনে করি, এবং বড় আমার প্রিয় অধিকার এখন পিএইচপি জন্য মাত্র কারণ উপাদান আমরা আগে যে বিষয়ে কথা বললাম যে. এটা কম্পোজার সক্রিয় করতে হবে. এটা সত্যিই সত্যিই, একটি অন্তর্ভুক্ত ভাবপূর্ণ ORM সিস্টেম. এছাড়াও একটি সত্যিই সন্ত্রস্ত টেমপ্লেট আছে ভাষা যে অন্যদের কিছু শুধু প্রদান করবেন না. এবং মাইগ্রেশন. মাইগ্রেশন পাশাপাশি সন্ত্রস্ত. কুল? জট্টিল. জন্য ভাল, তাই অনেক ধন্যবাদ এই সেমিনার পর্যবেক্ষক, আপনার চূড়ান্ত প্রকল্পে এবং শুভকামনা.