সিড ও ইনডেক্স পেইজ

প্রস্তুতি

যেহেতু এই প্রোজেক্টটি একটি blog এর মতো হবে তাই হোম বা ইনডেক্স পেইজ এ আমাদের পোস্ট গুলোর লিস্ট থাকাই স্বাভাবিক।

posts টেবিল এর জন্য Post মডেল তৈরিঃ

মডেলarrow-up-right অধ্যায়ে আমার এই বিষয় নিয়ে বেশ আলোচনা করেছিলাম, চাইলে একবার ঘুরে আসতে পারেন।

আসুন নিচের কমান্ডটি দেইঃ

php artisan make:model Post

project.one/app/Post.php ফাইলটি আমরা পাবো, সাধারণ নিয়ম অনুসারে Post ক্লাসটি, গত অধ্যায়ে migrate করা posts টেবিলটাকেই গ্রহণ করবে। আসুন টেবিলটি দেখে নেইঃ pro-1-blog-posts-table

এবার Post.php ফাইলটি খুলি

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    //
}

এবং নিচের মতো পরিবর্তন করি

অংশটি বোঝার জন্য এইখানে দেখুনarrow-up-right

posts টেবিল এ কিছু রেকর্ড ইন্সার্ট করি ডেভেলপমেন্ট এর সুবিধার জন্য

আমরা আগেই Tinkerarrow-up-right ব্যবহার করে কিভাবে টেবিলে ডাটা ইন্সার্ট করা যায় তা দেখেছিলাম। আজ দেখবো Seeding ।

সিডিং(Seeding)

লারাভেল ডাটাবেজে টেস্ট ডাটা ইন্সার্ট করার জন্য সাধারণ একটি method যোগ করেছে, যার নাম সিডিং(Seeding)। সব সিড ক্লাস database/seeds ডাইরেক্টরিতে থাকে। সিড ক্লাস এর নাম আপনি যেকোনো কিছুই দিতে পারেন, কিন্তু কিছু রীতি মেনে নাম দেয়াই ভালো, যেমন আমাদের posts টেবিলের সিডার ক্লাস এর নাম হতে পারে PostsTableSeeder

আসুন তাহলে আমাদের সিডার বানিয়ে ফেলি নিচের কমান্ড দিয়েঃ

আমরা নিশ্চয় project.one/database/seeds/PostsTableSeeder.php ফাইলটি পাবো।

আমাদের ফাইলটাকে পরিবর্তন করার আগে আসুন project.one/database/seeds/DatabaseSeeder.php ফাইল এ একটু পরিবর্তন আনি নিচের মতো।

এবার project.one/database/seeds/PostsTableSeeder.php ফাইলটাকে পরিবর্তন করি

এবার নিচের কমান্ডটি দিন ও ডাটাবেজে টেবিলটির পরিবর্তন লক্ষ্য করুন।

সতর্কতাঃ আপনি যদি নিচের মতো এরর দেখেন

তাহলে নিচের কমান্ডটি দিন।

আবার db::seed কমান্ডটি দিন ও ডাটাবেজে টেবিলটির পরিবর্তন লক্ষ্য করুন।

কিন্তু Tinker বা উপরের মতো করে টেস্ট ডাটা ডাটাবেজে ঢুকানো বড়ই কষ্টকর তাই লারাভেল টেস্ট ডাটার কারখানা বানিয়ে দিয়েছে, আসুন তার সাথে পরিচিত হই।

মডেল ফ্যাক্টরি(model factory) এর ব্যবহারঃ

project.one/database/factories/ModelFactory.php ফাইলটিতে নিচের মতো করে একটি ফ্যাক্টরি ডিফাইন করি।

project.one/database/seeds/DatabaseSeeder.php ফাইলটি আগের মতোই থাকুক।

এবার project.one/database/seeds/PostsTableSeeder.php ফাইলটাকে পরিবর্তন করি

এবার নিচের কমান্ডটি দিন ও ডাটাবেজে টেবিলটির পরিবর্তন লক্ষ্য করুন।

আপনি এভাবে মডেল ফ্যাক্টরি ও ফেকার এর সাহায্যে সহজেই ইউজার, পাসওয়ার্ড, ঠিকানা, মানুষের নাম এবং আরও অনেক কিছুই তৈরি করতে পারেন।

ইনডেক্স পেইজ তৈরি

আমরা ব্লেড টেমপ্লেটিংarrow-up-right অধ্যায়ে দেখেছি কিভাবে ভিউ ও টেমপ্লেটিং করতে হয়। তাই সময় নষ্ট না করে নিচের মতো করে 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 ভার্সন)

এবার নিচের কমান্ড দিয়ে PostsController টি বানিয়ে ফেলি।

ও নিচের মতো পরিবর্তন করি।

এবার ভিউ তৈরি project.one/resources/views এর ভিতর posts নামে ফোল্ডার করে index.blade.php নামে নিচের মতো একটি ফাইল বানাই।

এবার আমরা ব্রাউজারে আমাদের প্রোজেক্ট টি চেক করি, আশা করি নিচের মত দেখতে হবে, না হোলে কমেন্টে জানান দয়া করে।

index-page

কি ভাবে সোর্স কোড পাওয়া যাবে?

গিটহাব এর project.onearrow-up-right রিপজিটোরিটি ফোর্ক করুন এবং আপনার সিস্টেমে ক্লোন করুন।

এই অধ্যায়ের সোর্স কোড পেতে

সর্বশেষ কমিট পর্যন্ত পেতে আবার নিচের কমান্ডটি দিন

Last updated