# যেভাবে লারাভেল প্রজেক্টে পোষ্ট ডেটাবেইজ তৈরি করবেন।

আস্সলামু আলাইকুম, আশা করি সবাই ভালো আছেন। আমি এখন থেকে প্রতিদিন চেষ্টা করবো ছোট ছোট বিষয়ের প্রতি আর্টিকেল লিখতে। এতে করে আমাদের মধ্যে যারা যারা ভিডিও দেখে বুঝতে সমস্যা হয় তারা আশা করি মোটামুটি একটা ধারণা পাবেন ইনশাআল্লাহ। তো চলুন শুরু করা যাক, প্রতিটি ডায়নামিক সাইটেই ব্লগ সিস্টেম থাকে কারণ প্রায় সাইটেই পার্সোনাল ব্লগ পোষ্ট দেখা যায়। আজকে আমরা শিখবো কিভাবে সহজেই একটি ব্লগ ডাটাবেইজ তৈরি করে সেখানে আমাদের ব্লগপোষ্ট গুলো সেভ করে রাখবো। তারপর সেখান থেকে ইচ্ছে মতো সাইটের ব্লগ সেকশনে দেখাবো।

১। প্রথমে আমাদের প্রজেক্টটি vscode এ ওপেন করে নেই। যেহেতু আমাদের ব্লগ সাইট বা পার্সোনাল সাইটে নিজের লেখা ব্লগ প্রকাশ করবো সেহেতু একটি পোষ্ট মডেল তৈরি করতে হবে। লারাভেল এ মডেল তৈরি করার কমান্ডটি হলো-

`php artisan make:model` // এই টুকু হলো মুল কমান্ড একটি মডেল তৈরি করতে হলে এভাবে লিখতে হবে-

`php artisan make:model Post -mc` // mc মানে মডেল এবং কন্ট্রোলার।

আপনার প্রজেক্ট এ এই কমান্ড রান করার পর পরই প্রজেক্টের ভিতর তিনটি নতুন ফাইল তৈরি হবে।

সেগুলো হলো- ১। একটি Post Model তৈরি হবে।

২। একটি ডাটাবেইজ মাইগ্রেশন টেবিল তৈরি হবে **create\_post\_table** নামে

৩। একটি কন্ট্রোলার তৈরি হবে **<mark>PostController</mark>** নামে। যা চিত্র-১ এর মতো

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671287524610/Kw6qXHFgv.png align="center")

এবার কোডে ফেরা যাক- প্রথমেই আমরা আমাদের তৈরিকৃত টেবিলটিতে আমাদের যেই যেই ফিল্ড লাগবে অর্থাৎ ডাটা লাগবে সেগুলো এসাইন করে দেই। যেটা করতে হবে নিচের দেওয়া ছবির মতো।

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671287559374/YjN6onC3Q.png align="center")

### **<mark>নিচে ব্লাংক ডাটাবেইজ</mark>**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671287754103/6i6AYR-0x.png align="center")

নোট: আমি এখানে মডেল নিয়েছি Harun নামে তাই আমার এখানে haruns আসছে।

একবার `php artisan migrate:fresh –seed` কমান্ডটি টার্মিনালে চালালেই হবে

এবার আমরা যাবো আমাদের **Controller** এ গিয়ে আমাদের তৈরিকৃত **HarunController** এ যাবো। তারপর নিচের মতো করে কোড লিখবো।

`public function addHarun(Request $r){`

`$r->validate([`

`'profile_img' =>    'required',`

`'title' => 'required',`

`'content' => 'required'`

`]);`

`$harun = new Harun();`

`$harun->profile_img = $r->profile_img;`

`$harun->title = $r->title;`

`$harun->content = $r->content;`

`$harun->save();`

`return Redirect::to('dashboard'); // এখানে সরাসরি ডাশবোর্ডে` রিডাইরেক্ট করানো হয়েছে।

`}`

এখানে `addHarun` হচ্ছে আমাদের রাউটের ফাংশন। একই সাথে আমরা Request কে কল করে ডাটাগুলোকে ভ্যালিডেশনের ভেতর দিয়ে পাস করে নেওয়ার জন্য `validate()` ফাংশনের ভিতর দিয়ে যে যে ডাটা গুলোকে required করতে চাই সেই ডাটাগুলোকে পাস করে নিলাম। এবং আমাদের ডাটাবেইজে ডাটা পাঠানোর জন্য `$harun` নামে একটি ভেরিয়েবলের মাধ্যমে Models এর harun মডেলে ডাটা গুলো ভ্যালিডেশন প্রসেস শেষ করে পাঠানোর জন্য ‍সর্বশেষ এসে `save()` ফাংশন কল করে ডাটা গুলোকে ডাটাবেইজে পাঠালাম।

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671287800678/9ELDmpVAH.png align="center")

**<mark>আমাদের তৈরিকৃত ডাটা ফরম</mark>**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671287898427/IK6ugqa43.png align="center")

ফরমে ডাটা ইনপুট দেওয়ার পর।

এবার আমাদের তৈরিকৃত ফরম এ ডাটা ইনপুট দিয়ে পুনরায় আবার ডাটাবেইজে প্রবেশ করলে আমাদের পোষ্টটি দেখতে পাবো।

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671287846101/hdtjriGHT.png align="center")

আশা করি বুঝতে পারছেন। কোথাও ভুল লিখে থাকলে বা ভুল করে থাকলে সবার কাছে ক্ষমা প্রার্থী। বি:দ্র: বানান ভুল হলে ক্ষমা করবেন। আমার ডিসকর্ড প্রোফাইল- https://discord.com/users/366451826704384012
