লারাভেল ফরম প্রসেসিং ও ডেটাবেজে ডেটা সেভ করা

লারাভেল নিয়ে এর আগের লেখা গুলোঃ

এর আগে আমরা ম্যানুয়ালি ডেটাবেজে ডেটা ইনপুট দিয়েছি। এবার আমরা ফরম থেকে ডেটাবেজে ডেটা সেভ করব। প্রথমে ফর্মটি তৈরি করে নিব। যদি আগের টিউটোরিয়াল গুলো ফলো করে থাকেন, তাহলে বুঝতে শুবিধে হবে। এর আগে আমরা টাস্ক নামে ডেটাবেজে টেবিল তৈরি করেছি, তারপর মডেল তৈরি করেছি এগুলো এখন কাজে লাগবে। যেমন সিম্পল একটা ফরম আমরা তৈরি করে নিব এভাবেঃ


<form method="POST" action="create">
{{ csrf_field() }} 
  
<div class="form-group">
    <label for="body">Task</label>
    <input type="text" class="form-control" id="body" name="body" placeholder="Title">
  </div>

 
   
  <button type="submit" class="btn btn-default">Submit</button>
</form>

এটা সাধারণ একটা ফর্ম, শুধু যুক্ত করেছি {{ csrf_field() }} এ অংশটি। csrf_field যুক্ত করলে একটা হিডেন টোকেন যুক্ত হবে ফরমে। যদি না যুক্ত করি, তাহলে লারাভেল আমাদের ফর্ম প্রসেস করতে দিবে না। সিকিউরিটির জন্য বাড়তি শুবিধে।

এখানে action হিসেবে দিয়েছি create। আপনি যে কোন কিছু ব্যবহার করতে পারেন। রাউট ফাইলে এ create রাউটের জন্য লিখবঃ

  Route::post('create', [email protected]');

আমরা TasksController ফাইলে create নামক মেথড তৈরি করব। আর ঐ মেথডে ফরমের ডেটা প্রসেস করব।

public function create(){

Task::create([
'body' =>request('body')
]);

 return  redirect('/');

}

আমাদের ফরমে মাত্র একটি ফিল্ড। লারাভেল Eloquent কম কোড লিখে সহজে ডেটাবেজে ডেটা যুক্ত করার মেথড যুক্ত করে দিয়েছে। আমরা শুধু ModelName::create([ ]); এর ভেতরে ফরমের ডেটা পাস করে দিলেই ডেটাবেজে যুক্ত হয়ে যাবে। আমাদের ফরমে একটা মাত্র ফিল্ড। এবং আমাদের ডেটাবেজ টেবিলেও একটাই ফিল্ড। এর বেশি ফিল্ড হলে আমরা এভাবে লিখতামঃ

public function create(){

Task::create([
'body' =>request('body'),
'title' =>request('title')
]);

 return  redirect('/');

}

রিকোয়েস্ট মেথড ব্যবহার করার জন্য আমাদের কন্ট্রোলারে use App\Http\Requests; যুক্ত করতে হবে। return redirect(‘/’); এর যায়গায় আমরা যে কোন url পাস করতে পারি। ‘/’ ব্যবহার করার কারণে ডেটা সেভ করার পর এখন হোম পেইজে রিডাইরেক্ট হবে।

 

এর পরের টিউটোরিয়াল আরেকটু মজার। ঐখানে শিখতে পারবেন কিভাবে ইমেজ আপলোড করা যায়ঃ

লারাভেলে ইমেজ আপলোড এবং সেভ করা

Leave a Reply