تعداد بازدید: 1412

Forms Handling

در زمان Server Side Proccessing فرم ها در لاراول توسط متدی از کنترلر Handle می شوند. به این صورت که action فرم را آدرس یک route خاص در نظر می گیرید (حال با یکی از متد های POST , PUT , DELETE , GET, PATCH) و Callback مربوط به route را را متدی از کنترلر خاص می فرستید.

Form Method

فرم ها یکی از راه های ارسال درخواست به سرور می باشند.به ازای هر عملگر از CRUD ما یک متد برای فرم خواهیم داشت :

  • CREATE : ایجاد یک ردیف جدید بهتر از از متد POST استفاده شود.
  • READ : برای دریافت یک ردیف می توان از متد GET استفاده کرد.
  • UPDATE : بروزرسانی یک ردیف از متد PUT استفاده می کنیم. اگر چند resource در برورسانی دخیل باشند از PATCH استفاده می کنیم.
  • DELETE : برای حذف یک ردیف از متد DELETE استفاده می کنیم.

نوع فعل درخواستی باید در Route تعریف شده باشد.

Route::put('user/{id}', 'UserController@update');
Route::post('user/', 'UserController@create');
Route::delete('user/{id}', 'UserController@delete');
Route::get('user/{id}', 'UserController@show');

PUT – PATCH

تفاوت PUT , PATCH در نحوه رفتار سرور برای بروزرسانی resource می باشد. به طوری که :

  • PUT : در این متد بروزرسانی به وسیله ورژن جدید از مقادیر فرستاده شده انجام می پذیرد . یعنی کل اطلاعات بروز می شوند.
  • PATCH : در این متد قسمتی از اطلاعات (parts of the source) بروزرسانی می شوند .

نکته : در بروزرسانی که در آن related resource دخیل می باشد بهتر است از متد PATCH استفاده کنیم(updating the resource effects other resources). چون در نحوه عملکرد متد sync می توان دریافت که سه عمل زیر را باید انجام دهد :

  • روابط موجود بدون تغییر بماند.
  • روابط جدید اضافه شود.
  • روابط از بین رفته حذف شود.

CSRF Token

یک رشته تصادفی است که توسط سیستم به ازای هر session ایجاد می شود. این token باید در تمامی درخواست ها باشد (Server Side or Client Side – Ajax) تا آن درخواست معتبر شناخته شود.

هر درخواستی در application ما در صورتی پذیرفته شده است که csrf را داشته باشد. در غیر اینصورت به صفحه 403 هدایت می شویم بدون اعمال نتیجه. برای قرار دادن این مقدار در قالب فیلد مخفی به شکل زیر عمل می کنیم:

<form method="POST" action="/profile">
    @csrf
</form>

Method Field

همان طور که می دانیم برای Http verb به صورت PUT, PATCH, DELETE باید به شکل زیر عمل کنیم.

<form action="/foo/bar" method="POST">
    @method('PUT')
</form>

method در فرم تنها دو مقدار GET , POST را می گیرد. برای استفاده از سایر متد ها باید از directive برابر با method استفاده کنیم.

نکته : معمولا برای متد های update از http verb برابر با PUT استفاده می کنیم.

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای Forms Handling

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *