اعتبار سنجی روی داده های فرم در کنترلر (لاراول)

اعتبار سنجی روی داده های فرم در کنترلر (لاراول)

 

کلاس پایه App\Http\Controllers\Controller  در لاراول از تریت ValidatesRequest استفاده میکند. این تریت یک روش ساده برای درستی سنجی درخواستهای HTTP ارائه مینماید. نحوه استفاده از آن در ادامه آورده شده:

public function store(Request $request)

{

   $this->validate($request, [

        ‘title’ => ‘required|unique|max:255’,

       ‘body’ => ‘required’,    ]);

}

در صورت تایید درستی، کد شما به روال طبیعی اجرا ادامه میدهد. و در صورت رد درستی اکسپشن Illuminate\Contracts\Validation\ValidationException  ایجاد میشود. این اکسپشن به صورت خودکار ایجاد میشود و کاربر به مکان پیشین خود ریدایرکت میشود. پیغامهای خطای ایجاد شده هم به session اضاف می شوند.

برای مثال، در اینجا کد معادل دستور بالا به صورت دستی نوشته شده است:

public function store(Request $request)

{

$v = Validator::make($request->all(), [

       ‘title’ => ‘required|unique|max:255’,

       ‘body’ => ‘required’,

    ]);

if ($v->fails())

   {

    return redirect()->back()->withErrors($v->errors());

    }

  //

}