شرح صفوف ومحتوى الفقرة
يمكنك فرض سياسات النماذج إما في مطلع دالة المتحكم عبر Gate::authorize أو مباشرة داخل دالة authorize في كلاس طلب التحقق FormRequest. يضمن فحص الصلاحية داخل FormRequest رفض الطلبات غير المصرحة برمز 403 مبكراً قبل البدء بفحص قواعد التحقق من المدخلات.
- الإلزام داخل المتحكم (Gate::authorize): فحص صريح وواضح في أول سطر من دالة المتحكم.
- الإلزام في طلب التحقق (FormRequest::authorize): يجمع فحص الصلاحية والتحقق من الحقول في كلاس واحد.
- جلب نموذج المسار ($this->route): يصل إلى كائن النموذج المحقون بالمسار لفحص ملكيته داخل الطلب.
PHP
// Inside UpdatePostRequest extends FormRequest:
public function authorize(): bool
{
$post = $this->route('post');
return $this->user()->can('update', $post);
}