Laravel 11 / Validation ValidatesWhenResolvedTrait::passedValidation()

laravel 11 validation passed validation
19 مرداد 1404

توضیحات درباره ValidatesWhenResolvedTrait::passedValidation()

سلام دوست عزیز! امروز می‌خواهیم درباره متد passedValidation() در تریتی ValidatesWhenResolvedTrait در فریمورک Laravel 11 صحبت کنیم. این متد به ما اجازه می‌دهد تا بعد از اینکه یک درخواست و اعتبارسنجی آن انجام شد، اقداماتی را انجام دهیم. به زبان ساده، وقتی که اعتبارسنجی درخواست موفقیت‌آمیز باشد، این متد اجرا می‌شود و ما می‌توانیم کدهای خاصی را در اینجا برای پردازش بیشتر بنویسیم.

به عنوان مثال، فرض کنیم که ما یک فرم ثبت‌نام داریم. وقتی کاربر فرم را پر کرده و ارسال می‌کند، Laravel ابتدا اعتبارسنجی‌ها را بررسی می‌کند. اگر اعتبارسنجی‌ها درست باشند، passedValidation() فراخوانی می‌شود. اینجاست که می‌توانیم اطلاعات اضافی را پردازش کنیم یا داده‌ها را ذخیره کنیم. حتی ممکن است بخواهیم یک عملیات خاص انجام دهیم، مثل ارسال یک ایمیل خوشامدگویی.

در لاراول، متد passedValidation() بخشی از منطق کنترلرها و اعتبارسنجی‌ها است. به این معنی که شما می‌توانید از آن در کلاس‌های اعتبارسنجی خود استفاده کنید تا زمانی که داده‌ها تایید شدند، کار خاصی انجام دهید. خیلی جالب است، نه؟

حالا بیایید به کد بپردازیم تا ببینیم چطور می‌توانیم از این متد استفاده کنیم. در زیر، یک مثال ساده از نحوه استفاده از تریتی ValidatesWhenResolvedTrait آورده شده است:

namespace App\Http\Requests; 

use Illuminate\Foundation\Http\FormRequest;

class RegisterRequest extends FormRequest
{
use ValidatesWhenResolvedTrait;

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

protected function passedValidation()
{
// اینجا می‌توانیم اطلاعات کاربر را ثبت کنیم
// یا ایمیل خوشامدگویی ارسال کنیم
}
}

حالا بیایید این کد را مرحله به مرحله توضیح دهیم:

namespace App\Http\Requests;


در این خط، ما فضای نام (namespace) را برای درخواست‌های HTTP خود مشخص می‌کنیم.

use Illuminate\Foundation\Http\FormRequest;


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

class RegisterRequest extends FormRequest


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

use ValidatesWhenResolvedTrait;


ما تریتی که شامل متدهای اعتبارسنجی است را وارد می‌کنیم.

public function rules()


این متد قوانین اعتبارسنجی را برای فیلدهای فرم مشخص می‌کند.

return [...];


ما قوانین مربوط به نام، ایمیل و رمز عبور را به صورت آرایه بازمی‌گردانیم.

protected function passedValidation()


این متد به راحتی بعد از اینکه اعتبارسنجی موفق انجام شد، اجرا می‌شود.

{ ... }


در اینجا می‌توانیم کد خاصی برای ثبت‌نام کاربر یا ارسال ایمیل اجرا کنیم.

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

؟

متد passedValidation() چیست و چه زمانی اجرا می‌شود؟

؟

چطور می‌توانم از passedValidation() در کد استفاده کنم؟

؟

آیا نیاز است که از ValidatesWhenResolvedTrait استفاده کنم؟