Phalcon ফ্রেমওয়ার্কে HTML ফর্ম তৈরি এবং ফর্ম থেকে ডেটা সংগ্রহ করার প্রক্রিয়া অত্যন্ত সহজ। ফর্মের মাধ্যমে আপনি ইউজার ইনপুট গ্রহণ করতে পারেন এবং সেই ইনপুট ডেটা কন্ট্রোলার মাধ্যমে প্রক্রিয়া করতে পারেন। এখানে আমরা দেখব কীভাবে Phalcon এ HTML ফর্ম তৈরি করতে হয় এবং সেই ফর্ম থেকে ডেটা সংগ্রহ করা হয়।
HTML ফর্ম তৈরি করা
Phalcon ফ্রেমওয়ার্কে ফর্ম তৈরি করতে সাধারণ HTML ব্যবহার করা হয়, এবং আপনি চাইলে Phalcon এর ফর্ম হেলপার ফিচারও ব্যবহার করতে পারেন। কিন্তু, এখানে সাধারণ HTML ফর্ম তৈরি করার উদাহরণ দেখানো হলো।
উদাহরণ: একটি সাধারন HTML ফর্ম
<form action="/user/save" method="POST">
<label for="name">Name:</label>
<input type="text" id="name" name="name" required>
<br>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<br>
<button type="submit">Submit</button>
</form>
এখানে, একটি সাধারণ HTML ফর্ম তৈরি করা হয়েছে যেখানে ইউজার থেকে name এবং email ইনপুট নেওয়া হচ্ছে। ফর্মটি POST মেথড ব্যবহার করে /user/save রাউটে ডেটা পাঠাবে।
Controller এ ডেটা সংগ্রহ করা
Phalcon ফ্রেমওয়ার্কে ফর্ম থেকে ডেটা সংগ্রহ করার জন্য কন্ট্রোলারে রিকোয়েস্টের ডেটা নিয়ে কাজ করতে হয়। ফর্মটি POST মেথড ব্যবহার করে ডেটা পাঠালে, আপনি সেই ডেটা কন্ট্রোলারের মাধ্যমে সহজেই গ্রহণ করতে পারেন।
উদাহরণ: Controller এর মাধ্যমে ফর্ম ডেটা সংগ্রহ করা
use Phalcon\Mvc\Controller;
class UserController extends Controller
{
public function saveAction()
{
// POST ডেটা সংগ্রহ
$name = $this->request->getPost("name");
$email = $this->request->getPost("email");
// ডেটা প্রিন্ট করা
echo "Name: " . $name . "<br>";
echo "Email: " . $email;
}
}
এখানে, getPost() মেথড ব্যবহার করে name এবং email ফর্ম ফিল্ড থেকে ডেটা গ্রহণ করা হয়েছে। এই ডেটা তারপর কন্ট্রোলারের মধ্যে প্রক্রিয়া করা হয়।
Form Validation
Phalcon এ ফর্ম ভ্যালিডেশন একটি গুরুত্বপূর্ণ পদক্ষেপ। আপনি ফর্ম ডেটা যাচাই করতে চাইলে, Phalcon এর Validation ক্লাস ব্যবহার করতে পারেন। এই ক্লাসের মাধ্যমে ফর্ম ডেটার জন্য ভ্যালিডেশন নিয়ম তৈরি করা সম্ভব।
উদাহরণ: ফর্ম ভ্যালিডেশন
use Phalcon\Validation;
use Phalcon\Validation\Validator\Email as EmailValidator;
use Phalcon\Validation\Validator\PresenceOf as PresenceOf;
class UserController extends Controller
{
public function saveAction()
{
$validation = new Validation();
// নামের জন্য প্রেজেন্স চেক
$validation->add(
"name",
new PresenceOf([
"message" => "The name is required"
])
);
// ইমেইলের জন্য ভ্যালিডেশন
$validation->add(
"email",
new EmailValidator([
"message" => "The email is not valid"
])
);
// ফর্ম ডেটা
$data = [
"name" => $this->request->getPost("name"),
"email" => $this->request->getPost("email")
];
// ভ্যালিডেশন চালানো
$messages = $validation->validate($data);
if (count($messages)) {
foreach ($messages as $message) {
echo $message . "<br>";
}
} else {
echo "Form is valid";
}
}
}
এখানে, আমরা PresenceOf এবং EmailValidator ব্যবহার করে ফর্ম ফিল্ডগুলোকে ভ্যালিডেট করেছি। যদি ফর্ম ডেটা ভ্যালিড না হয়, তাহলে উপযুক্ত মেসেজ প্রদর্শিত হবে।
HTML ফর্ম ডেটা ডাটাবেসে সেভ করা
Phalcon এ ফর্ম ডেটা ডাটাবেসে সেভ করতে হলে আপনাকে মডেল ব্যবহার করতে হবে। ফর্ম থেকে গ্রহণ করা ডেটা মডেল অবজেক্টের মাধ্যমে ডাটাবেসে সেভ করা যায়।
উদাহরণ: ফর্ম ডেটা ডাটাবেসে সেভ করা
use Phalcon\Mvc\Controller;
class UserController extends Controller
{
public function saveAction()
{
// POST ডেটা সংগ্রহ
$name = $this->request->getPost("name");
$email = $this->request->getPost("email");
// মডেল তৈরি এবং ডেটা সেভ করা
$user = new Users();
$user->name = $name;
$user->email = $email;
if ($user->save()) {
echo "User saved successfully!";
} else {
echo "Failed to save user.";
}
}
}
এখানে, Users মডেল ব্যবহার করে ফর্ম ডেটা ডাটাবেসে সেভ করা হচ্ছে। save() মেথডের মাধ্যমে ডেটাবেসে নতুন ইউজার রেকর্ড সেভ করা হয়।
Phalcon এর ফর্ম হেলপার ব্যবহার
Phalcon ফ্রেমওয়ার্কের একটি ফর্ম হেলপার সিস্টেম রয়েছে, যা ফর্ম তৈরির এবং ডেটা গ্রহণের প্রক্রিয়াকে আরও সহজ করে তোলে। এটি Phalcon\Forms\Form, Phalcon\Forms\Element\Text, Phalcon\Forms\Element\Email ইত্যাদি কম্পোনেন্ট দিয়ে ফর্ম তৈরি করতে সাহায্য করে।
উদাহরণ: Phalcon Form হেলপার ব্যবহার করা
use Phalcon\Forms\Form;
use Phalcon\Forms\Element\Text;
use Phalcon\Forms\Element\Email;
use Phalcon\Forms\Element\Submit;
use Phalcon\Validation\Validator\PresenceOf;
class UserController extends Controller
{
public function createAction()
{
$form = new Form();
// নামের জন্য ফর্ম এলিমেন্ট
$name = new Text("name");
$name->addValidator(new PresenceOf(["message" => "Name is required"]));
$form->add($name);
// ইমেইলের জন্য ফর্ম এলিমেন্ট
$email = new Email("email");
$email->addValidator(new PresenceOf(["message" => "Email is required"]));
$form->add($email);
// সাবমিট বাটন
$submit = new Submit("submit", ["value" => "Submit"]);
$form->add($submit);
// ফর্ম প্রক্রিয়া
if ($this->request->isPost() && $form->isValid($this->request->getPost())) {
echo "Form is valid!";
} else {
echo $form->render();
}
}
}
এখানে, আমরা Phalcon\Forms\Form ব্যবহার করে একটি ফর্ম তৈরি করেছি, এবং Text, Email, এবং Submit এলিমেন্ট যোগ করেছি।
সারাংশ
Phalcon ফ্রেমওয়ার্কে HTML ফর্ম তৈরি এবং ডেটা সংগ্রহ করা খুবই সহজ। আপনি সহজ HTML ফর্ম তৈরি করে POST মেথডে ডেটা পাঠাতে পারেন এবং কন্ট্রোলারের মাধ্যমে সেই ডেটা প্রক্রিয়া করতে পারেন। Phalcon এর ভ্যালিডেশন এবং মডেল ব্যবহার করে ডেটা যাচাই এবং ডাটাবেসে সেভ করা সম্ভব। এছাড়া, Phalcon এর ফর্ম হেলপার সিস্টেম আরও সহজ এবং কার্যকরী ফর্ম তৈরি করতে সাহায্য করে।
Read more