TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 611 subscribers
Post #383 407
فصل شش - Requests and Response

بخش دوم - اعتبارسنجی درخواست ها


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

اعتبارسنجی می‌تواند به روش‌های مختلفی انجام شود:

1- استفاده از متد validate در کنترلر
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|min:8'
]);


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

2- استفاده از کلاس‌های درخواست سفارشی (Form Request Validation)
برای پروژه‌های بزرگ، بهتر است قوانین اعتبارسنجی را در یک کلاس مجزا تعریف کنید:
php artisan make:request RegisterRequest


سپس در کلاس ایجاد شده، قوانین را در متد rules مشخص کنید.
public function rules(): array
{
return [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
];
}


ایجاد قوانین سفارشی (Custom Rules)

علاوه بر قوانین پیش‌فرض لاراول، می‌توان قوانین سفارشی نیز ایجاد کرد. این ویژگی زمانی مفید است که نیاز به اعتبارسنجی خاصی داشته باشید که در قوانین پیش‌فرض موجود نیست.
php artisan make:rule ValidUsername


در کلاس ValidUsername می‌توان منطق اعتبارسنجی را تعریف و در پروژه استفاده کرد.
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (strtoupper($value) !== $value) {
$fail('The :attribute must be uppercase.');
}
}


سفارشی‌سازی پیام‌های خطا

لاراول به شما اجازه می‌دهد تا پیام‌های خطای اعتبارسنجی را شخصی‌سازی کنید:
$messages = [
'email.required' => 'Entering an email is required.',
'password.min' => 'The password must be at least 8 characters.',
];
$request->validate($rules, $messages);


این ویژگی برای چندزبانه کردن پیام‌های خطا نیز بسیار مفید است.

سیستم اعتبارسنجی در لاراول بسیار قدرتمند، انعطاف‌پذیر و ساده است. با استفاده از روش‌های مختلف مانند Form Request Validation، Custom Rules و شخصی‌سازی پیام‌های خطا، می‌توان داده‌های ورودی را به شکلی بهینه مدیریت کرد و از بروز خطاهای امنیتی و عملکردی جلوگیری کرد.

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

#laravel #لاراول #فصل_۶
@AmirhDeveloper
.
  • 🔥 3
  • 🍓 1
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →