যেহেতু এই প্রোজেক্টটি একটি blog এর মতো হবে তাই হোম বা ইনডেক্স পেইজ এ আমাদের পোস্ট গুলোর লিস্ট থাকাই স্বাভাবিক।
posts টেবিল এর জন্য Post মডেল তৈরিঃ
মডেল অধ্যায়ে আমার এই বিষয় নিয়ে বেশ আলোচনা করেছিলাম, চাইলে একবার ঘুরে আসতে পারেন।
আসুন নিচের কমান্ডটি দেইঃ
phpartisanmake:modelPost
project.one/app/Post.php ফাইলটি আমরা পাবো, সাধারণ নিয়ম অনুসারে Post ক্লাসটি, গত অধ্যায়ে migrate করা posts টেবিলটাকেই গ্রহণ করবে। আসুন টেবিলটি দেখে নেইঃ
posts টেবিল এ কিছু রেকর্ড ইন্সার্ট করি ডেভেলপমেন্ট এর সুবিধার জন্য
আমরা আগেই Tinker ব্যবহার করে কিভাবে টেবিলে ডাটা ইন্সার্ট করা যায় তা দেখেছিলাম। আজ দেখবো Seeding ।
সিডিং(Seeding)
লারাভেল ডাটাবেজে টেস্ট ডাটা ইন্সার্ট করার জন্য সাধারণ একটি method যোগ করেছে, যার নাম সিডিং(Seeding)। সব সিড ক্লাস database/seeds ডাইরেক্টরিতে থাকে। সিড ক্লাস এর নাম আপনি যেকোনো কিছুই দিতে পারেন, কিন্তু কিছু রীতি মেনে নাম দেয়াই ভালো, যেমন আমাদের posts টেবিলের সিডার ক্লাস এর নাম হতে পারে PostsTableSeeder।
আসুন তাহলে আমাদের সিডার বানিয়ে ফেলি নিচের কমান্ড দিয়েঃ
phpartisanmake:seederPostsTableSeeder
আমরা নিশ্চয় project.one/database/seeds/PostsTableSeeder.php ফাইলটি পাবো।
<?phpuseIlluminate\Database\Seeder;classPostsTableSeederextendsSeeder{/** * Run the database seeds. * * @returnvoid */publicfunctionrun() {// }}
আমাদের ফাইলটাকে পরিবর্তন করার আগে আসুন project.one/database/seeds/DatabaseSeeder.php ফাইল এ একটু পরিবর্তন আনি নিচের মতো।
<?phpuseIlluminate\Database\Seeder;classDatabaseSeederextendsSeeder{/** * Run the database seeds. * * @returnvoid */publicfunctionrun() {$this->call(PostsTableSeeder::class); }}
এবার project.one/database/seeds/PostsTableSeeder.php ফাইলটাকে পরিবর্তন করি
<?phpuseIlluminate\Database\Seeder;classDatabaseSeederextendsSeeder{/** * Run the database seeds. * * @returnvoid */publicfunctionrun() {$this->call(PostsTableSeeder::class); }}
এবার project.one/database/seeds/PostsTableSeeder.php ফাইলটাকে পরিবর্তন করি
<?phpuseIlluminate\Database\Seeder;classPostsTableSeederextendsSeeder{/** * Run the database seeds. * * @returnvoid */publicfunctionrun() {App\Post::truncate(); // delete all previous rowsfactory(App\Post::class,10)->create(); // Create 10 rows }}
এবার নিচের কমান্ডটি দিন ও ডাটাবেজে টেবিলটির পরিবর্তন লক্ষ্য করুন।
phpartisandb:seed
আপনি এভাবে মডেল ফ্যাক্টরি ও ফেকার এর সাহায্যে সহজেই ইউজার, পাসওয়ার্ড, ঠিকানা, মানুষের নাম এবং আরও অনেক কিছুই তৈরি করতে পারেন।
ইনডেক্স পেইজ তৈরি
আমরা ব্লেড টেমপ্লেটিং অধ্যায়ে দেখেছি কিভাবে ভিউ ও টেমপ্লেটিং করতে হয়। তাই সময় নষ্ট না করে নিচের মতো করে project.one/resources/views এর মধ্যে master.blade.php ফাইলটি তৈরি করি।
৬ নম্বর লাইনে CDN থেকে টুইটার বুটস্ত্রাপ লিঙ্ক করা হয়েছে। আসুন নিজেদের স্টাইল এর জন্য project.one/public/css পাথে style.css নামে একটি ফাইল তৈরি করি, যেটা ৭ নম্বর লাইনে লিঙ্ক করা হয়েছে। কিছু CSS যোগ করি এই ফাইলেঃ
এবার project.one/public ফোল্ডারে js নামে আরেকটি ফোল্ডার করে jquery-1.12.2.min.js ডাউনলোড করে রাখি, যেটা ১৬ নং লাইনে লিঙ্ক করা হয়েছে। তার পরের লাইন টি আশা করি বুজতে পারছেন।
১০ নং লাইনে দেখুন navbar.blade.php নামে একটি ফাইল ইনক্লুড করা হয়েছে আসুন project.one/resources/views এর মধ্যে partials নামে একটি ফোল্ডার বানিয়ে ফাইলটি নিচের মতো বানিয়ে ফেলি।
এটা টুইটার বুটস্ত্রাপের সাধারন navbar, যেখানে লিঙ্ক গুলা তৈরি করেছি, পরে পেইজ গুলাও বানাবো।
এবার আসুন routes.php ফাইলে আমাদের হোমে রুট বানাই। নিচের মতো করে(এটা লারাভেল 5.2.31 ভার্সন)
<?php/*|--------------------------------------------------------------------------| Application Routes|--------------------------------------------------------------------------|| Here is where you can register all of the routes for an application.| It's a breeze. Simply tell Laravel the URIs it should respond to| and give it the controller to call when that URI is requested.|*/Route::get('/','PostsController@index');
এবার নিচের কমান্ড দিয়ে PostsController টি বানিয়ে ফেলি।