استفاده از FormRequest در Laravel 11

laravel 11 foundation formrequest
18 مرداد 1404

آشنایی با FormRequest در Laravel 11



سلام دوستای گلم! امروز می‌خوایم در مورد FormRequest در Laravel 11 صحبت کنیم. فرم‌ری‌کوئست یه قابلیت فوق‌العاده‌ توی لاراوله که به شما اجازه می‌ده تا به راحتی داده‌های ورودی کاربران رو اعتبارسنجی (Validation) کنید. این ویژگی باعث می‌شه که شما بتونید منطق اعتبارسنجی رو از کنترلرها جدا کنید و کدتون رو تمیزتر و قابل نگهداری‌تر کنید.



در واقع، وقتی که شما از FormRequest استفاده می‌کنید، به یک کلاس جدید دسترسی پیدا می‌کنید که می‌تونید تمام قوانین و معیارهای اعتبارسنجی رو توش پیاده‌سازی کنید. این کار باعث می‌شه که کنترلرهای شما فقط وظیفه پردازش داده‌ها رو داشته باشند و دیگه نیازی به نگرانی درباره اعتبارسنجی نباشه.



برای استفاده از FormRequest، شما اول باید یک کلاس جدید بسازید. به عنوان مثال، فرض کنید که می‌خوایم داده‌های ثبت‌نام کاربر رو اعتبارسنجی کنیم. می‌تونیم با استفاده از یک کامند، کلاس جدیدی به نام RegisterRequest بسازیم که تمام قوانین اعتبارسنجی رو توش بنویسیم.



بعد از این که کلاس رو ساختیم، می‌تونیم به راحتی ازش در کنترلر استفاده کنیم. فقط کافیه که نوع پارامتر ورودی متد کنترلر رو به کلاس جدیدی که ساختیم تغییر بدیم. این کار باعث می‌شه که اعتبارسنجی به‌طور خودکار انجام بشه و اگر داده‌ها معتبر نبودن، بازخورد مناسبی به کاربر نمایش داده بشه.


نمونه کد برای استفاده از FormRequest


php
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class RegisterRequest extends FormRequest
{
public function authorize()
{
return true;
}

public function rules()
{
return [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:8|confirmed',
];
}
}

توضیح متنی کد


namespace App\Http\Requests;
این خط نام فضای نام کلاس رو تعیین می‌کنه. در اینجا ما از فضای نام App\Http\Requests استفاده کردیم.


use Illuminate\Foundation\Http\FormRequest;
اینجا داریم کلاس اصلی FormRequest که در لاراوله رو استفاده می‌کنیم.


class RegisterRequest extends FormRequest
در این خط ما داریم یک کلاس جدید به نام RegisterRequest تعریف می‌کنیم که از FormRequest ارث‌بری می‌کنه.


public function authorize()
این متد مشخص می‌کنه که آیا کاربر مجاز به انجام این درخواست هست یا نه. در اینجا ما به طور پیش‌فرض true رو برگشت می‌دیم که یعنی همه کاربرها مجاز به استفاده از این درخواست هستن.


public function rules()
در این متد ما قوانین اعتبارسنجی رو تعریف می‌کنیم. این قوانین مشخص می‌کنن که چه نوع داده‌هایی باید از کاربر دریافت بشه و معتبر باشه.


در این مثال:



  • 'name' => 'required|string|max:255' نام باید الزامی، یک رشته و حداکثر طول آن 255 کاراکتر باشد.

  • 'email' => 'required|string|email|max:255|unique:users' ایمیل باید الزامی، یک رشته، در فرمت ایمیل معتبر باشد و در پایگاه داده یکتا باشد.

  • 'password' => 'required|string|min:8|confirmed' رمز عبور باید الزامی، یک رشته، حداقل 8 کاراکتر باشد و باید با فیلد تأیید رمزعبور مطابقت داشته باشد.


سوالات متداول

؟

FormRequest در لاراول چیست؟

؟

چطور می‌توانم یک FormRequest در لاراول بسازم؟

؟

قوانین اعتبارسنجی را کجا تعریف می‌کنم؟

؟

آیا می‌توانم از FormRequest ها در کنترلرها استفاده کنم؟