Yii ফ্রেমওয়ার্কের ফর্ম ভ্যালিডেশন সিস্টেম খুবই শক্তিশালী এবং সহজে কাস্টমাইজ করা যায়। এটি ডেটা ইনপুটের সঠিকতা নিশ্চিত করতে সাহায্য করে এবং ব্যবহারকারীর ভুল ইনপুটের জন্য সঠিক ত্রুটি বার্তা প্রদান করে। Yii-তে ফর্ম ভ্যালিডেশন মূলত মডেল (Model) স্তরে করা হয়, যেখানে ডেটাবেসের টেবিলের কলামের জন্য ভ্যালিডেশন রুলস সেট করা হয়।
ফর্ম ভ্যালিডেশন কী?
ফর্ম ভ্যালিডেশন হল এমন একটি প্রক্রিয়া, যা ফর্মে দেওয়া ইনপুট ডেটাকে যাচাই করে, এটি সঠিক ফরম্যাটে আছে কিনা বা অন্যান্য শর্ত পূরণ করছে কিনা তা নিশ্চিত করে। Yii ফ্রেমওয়ার্কে, ফর্ম ভ্যালিডেশন সাধারণত মডেল ক্লাসের মাধ্যমে পরিচালিত হয়, যেখানে আপনি নির্দিষ্ট ইনপুটের জন্য বিভিন্ন ভ্যালিডেশন রুলস সংজ্ঞায়িত করেন।
Yii তে ফর্ম ভ্যালিডেশন রুলস
Yii-তে ফর্ম ভ্যালিডেশন রুলস হল কাস্টম বা প্রিসেট শর্ত যা ইনপুট ডেটার সাথে মিলিয়ে যাচাই করা হয়। Yii বিভিন্ন ধরনের ভ্যালিডেশন রুল প্রদান করে যেমন, required, email, integer, string, unique ইত্যাদি। নিচে Yii-তে ব্যবহৃত কিছু সাধারণ ভ্যালিডেশন রুল আলোচনা করা হলো।
সাধারণ ভ্যালিডেশন রুলস
১. required
required রুলটি ইনপুট ফিল্ডটি খালি থাকতে পারবে না, তা নিশ্চিত করে। যদি এটি খালি থাকে, তাহলে ভ্যালিডেশন ব্যর্থ হয়।
public function rules()
{
return [
[['name', 'email'], 'required'], // name এবং email ফিল্ডগুলি আবশ্যক
];
}
২. email
email রুলটি ইনপুটকে বৈধ ইমেল ঠিকানা হিসেবে যাচাই করে।
public function rules()
{
return [
['email', 'email'], // email ফিল্ডটি বৈধ ইমেল হতে হবে
];
}
৩. string
string রুলটি ইনপুটটি একটি স্ট্রিং হতে হবে কিনা তা যাচাই করে। এই রুলের জন্য সর্বনিম্ন এবং সর্বাধিক দৈর্ঘ্যও নির্ধারণ করা যায়।
public function rules()
{
return [
['username', 'string', 'min' => 3, 'max' => 20], // username ফিল্ডের দৈর্ঘ্য ৩ থেকে ২০ অক্ষরের মধ্যে হতে হবে
];
}
৪. integer
integer রুলটি ইনপুটটি একটি পূর্ণসংখ্যা হতে হবে কিনা তা যাচাই করে।
public function rules()
{
return [
['age', 'integer'], // age ফিল্ডটি একটি পূর্ণসংখ্যা হতে হবে
];
}
৫. number
number রুলটি ইনপুটটি একটি বৈধ সংখ্যা হতে হবে কিনা তা যাচাই করে।
public function rules()
{
return [
['price', 'number'], // price ফিল্ডটি একটি সংখ্যা হতে হবে
];
}
৬. unique
unique রুলটি ডেটাবেসে একটি বিশেষ কলামে প্রদত্ত মানের জন্য কোন ডুপ্লিকেট না থাকার নিশ্চয়তা দেয়। এটি সাধারণত লগইন বা ইমেল ঠিকানার ক্ষেত্রে ব্যবহার করা হয়।
public function rules()
{
return [
['email', 'unique'], // email ফিল্ডটি ডুপ্লিকেট হতে পারবে না
];
}
৭. match
match রুলটি ইনপুটের সাথে একটি নির্দিষ্ট প্যাটার্ন মিলছে কিনা তা যাচাই করে। এটি সাধারণত রেগুলার এক্সপ্রেশন (Regex) এর মাধ্যমে নির্ধারিত হয়।
public function rules()
{
return [
['phone', 'match', 'pattern' => '/^\+?\d{10,15}$/'], // phone ফিল্ডটি ফোন নম্বরের ফরম্যাটে হতে হবে
];
}
৮. compare
compare রুলটি দুটি ফিল্ডের মানের তুলনা করে, সাধারণত পাসওয়ার্ড এবং কনফার্ম পাসওয়ার্ড ক্ষেত্রগুলোর জন্য এটি ব্যবহার করা হয়।
public function rules()
{
return [
['password_confirm', 'compare', 'compareAttribute' => 'password'], // password_confirm ফিল্ডটি password ফিল্ডের সমান হতে হবে
];
}
৯. url
url রুলটি ইনপুটকে একটি বৈধ URL হিসেবে যাচাই করে।
public function rules()
{
return [
['website', 'url'], // website ফিল্ডটি একটি বৈধ URL হতে হবে
];
}
১০. safe
safe রুলটি নির্দেশ করে যে এই ফিল্ডটি ফর্ম ডেটা হিসাবে গ্রহণযোগ্য এবং এটি ভ্যালিডেশন প্রক্রিয়ার অংশ হবে না। এটি সাধারণত ফর্মের বাইরে থাকা তথ্য বা ইন্টারনাল ডেটা সংরক্ষণের জন্য ব্যবহার করা হয়।
public function rules()
{
return [
['created_at', 'safe'], // created_at ফিল্ডটি ভ্যালিডেশন প্রক্রিয়ার অংশ হবে না
];
}
কাস্টম ভ্যালিডেশন রুল
Yii আপনাকে কাস্টম ভ্যালিডেশন রুল তৈরি করার সুবিধা দেয়, যাতে আপনি নির্দিষ্ট শর্তের ভিত্তিতে ইনপুট যাচাই করতে পারেন। একটি কাস্টম রুল তৈরি করতে validate() মেথড ব্যবহার করা হয়।
public function rules()
{
return [
['password', 'validatePasswordStrength'],
];
}
public function validatePasswordStrength($attribute, $params)
{
if (strlen($this->$attribute) < 6) {
$this->addError($attribute, 'Password must be at least 6 characters long.');
}
}
এখানে validatePasswordStrength কাস্টম ভ্যালিডেশন রুল তৈরি করা হয়েছে, যা পাসওয়ার্ডের দৈর্ঘ্য যাচাই করে।
ভ্যালিডেশন সিকোয়েন্স
Yii-তে ফর্ম ভ্যালিডেশন সাধারণত নিম্নলিখিত ক্রমে সম্পন্ন হয়:
- প্রথমে required রুলটি চেক করা হয়।
- এরপর data type রুল (যেমন: string, integer, email ইত্যাদি) চেক করা হয়।
- custom বা compare রুলগুলি শেষের দিকে প্রয়োগ করা হয়।
সারাংশ
Yii ফ্রেমওয়ার্কের ফর্ম ভ্যালিডেশন সিস্টেম আপনাকে ইনপুট ডেটা যাচাই করার জন্য একটি শক্তিশালী এবং নমনীয় পদ্ধতি প্রদান করে। আপনি ডিফল্ট ভ্যালিডেশন রুল যেমন required, email, string, integer, unique ইত্যাদি ব্যবহার করতে পারেন, বা কাস্টম ভ্যালিডেশন রুল তৈরি করতে পারেন। এই ভ্যালিডেশন সিস্টেমটি ইনপুট ডেটার সঠিকতা নিশ্চিত করতে সাহায্য করে এবং ব্যবহারকারীর ভুল ইনপুটের জন্য উপযুক্ত ত্রুটি বার্তা প্রদান করে।
Read more