فرم ها و HTML
- باز کردن یک فرم
- حفاظت CSRF
- صحافی مدل فرم
- برچسب ها
- متن، ناحیه متن، رمز عبور و فیلدهای پنهان
- چک باکس ها و دکمه های رادیویی
- ورودی فایل
- ورودی شماره
- لیست های کشویی
- دکمه ها
- ماکروهای سفارشی
- ایجاد URL
باز کردن یک فرم
باز کردن یک فرم
{{ Form::open(array('url' => 'foo/bar')) }} //{{ Form::close() }}
به طور پیش فرض، یک
POST
روش در نظر گرفته می شود.
با این حال، شما آزاد هستید که روش دیگری را مشخص کنید:
echo Form::open(array('url' => 'foo/bar', 'method' => 'put'))
توجه: از آنجایی که فرمهای HTML فقط از متدهای
POST
و و وGET
با افزودن خودکار یک فیلد مخفی به فرم شما جعل میشوند .PUT
DELETE
_method
همچنین میتوانید فرمهایی را باز کنید که به مسیرهای نامگذاری شده یا اقدامات کنترلکننده اشاره میکنند:
echo Form::open(array('route' => 'route.name')) echo Form::open(array('action' => 'Controller@method'))
می توانید پارامترهای مسیر را نیز پاس کنید:
echo Form::open(array('route' => array('route.name', $user->id))) echo Form::open(array('action' => array('Controller@method', $user->id)))
اگر قرار است فرم شما بارگذاری فایل را بپذیرد،
files
گزینه ای را به آرایه خود اضافه کنید:
echo Form::open(array('url' => 'foo/bar', 'files' => true))
حفاظت CSRF
اضافه کردن توکن CSRF به یک فرم
لاراول روشی آسان برای محافظت از برنامه شما در برابر جعل درخواست های بین
سایتی ارائه می دهد.
ابتدا یک نشانه تصادفی در جلسه کاربر شما قرار می گیرد.
Form::open
اگر از روش با
استفاده کنید
POST
،
PUT
یا
DELETE
کد CSRF به صورت خودکار به فرم های شما به عنوان یک فیلد مخفی اضافه می شود.
از طرف دیگر، اگر می خواهید HTML را برای فیلد مخفی CSRF ایجاد کنید، می
توانید از
token
روش زیر استفاده کنید:
echo Form::token();
وصل کردن فیلتر CSRF به یک مسیر
Route::post('profile', array('before' => 'csrf', function(){ //}));
صحافی مدل فرم
باز کردن یک فرم مدل
اغلب، شما می خواهید یک فرم را بر اساس محتویات یک مدل پر کنید.
برای این کار از
Form::model
روش زیر استفاده کنید:
echo Form::model($user, array('route' => array('user.update', $user->id)))
اکنون، هنگامی که یک عنصر فرم را تولید می کنید، مانند یک ورودی متن، مقدار
مدل مطابق با نام فیلد به طور خودکار به عنوان مقدار فیلد تنظیم می شود.
بنابراین، برای مثال، برای یک ورودی متنی به نام
email
، ویژگی مدل کاربر
email
به عنوان مقدار تنظیم می شود.
با این حال، بیشتر وجود دارد!
اگر موردی در داده فلش جلسه با نام ورودی مطابقت داشته باشد، بر مقدار مدل
اولویت دارد.
بنابراین، اولویت به این صورت است:
- داده های فلش جلسه (ورودی قدیمی)
- ارزش تصویب شده صریحا
- داده های ویژگی مدل
این به شما اجازه می دهد تا به سرعت فرم هایی بسازید که نه تنها به مقادیر مدل متصل می شوند، بلکه در صورت وجود خطای اعتبار سنجی در سرور، به راحتی دوباره پر می شوند!
توجه: هنگام استفاده
Form::model
حتما فرم خود را باForm::close
!
برچسب ها
تولید عنصر برچسب
echo Form::label('email', 'E-Mail Address');
تعیین ویژگی های اضافی HTML
echo Form::label('email', 'E-Mail Address', array('class' => 'awesome'));
توجه: پس از ایجاد یک برچسب، هر عنصر فرمی که با نامی مطابق با نام برچسب ایجاد کنید، به طور خودکار یک شناسه مطابق با نام برچسب نیز دریافت می کند.
متن، ناحیه متن، رمز عبور و فیلدهای پنهان
ایجاد ورودی متن
echo Form::text('username');
تعیین یک مقدار پیش فرض
echo Form::text('email', 'example@gmail.com');
نکته: متدهای hidden و textarea دارای امضای یکسانی با متد text هستند .
ایجاد ورودی رمز عبور
echo Form::password('password');
تولید ورودی های دیگر
echo Form::email($name, $value = null, $attributes = array());echo Form::file($name, $attributes = array());
چک باکس ها و دکمه های رادیویی
ایجاد یک چک باکس یا ورودی رادیویی
echo Form::checkbox('name', 'value'); echo Form::radio('name', 'value');
ایجاد یک چک باکس یا ورودی رادیویی که علامت زده شده است
echo Form::checkbox('name', 'value', true); echo Form::radio('name', 'value', true);
عدد
تولید ورودی عدد
echo Form::number('name', 'value');
ورودی فایل
ایجاد ورودی فایل
echo Form::file('image');
توجه: فرم باید با
files
گزینه ای باز شده باشدtrue
.
لیست های کشویی
ایجاد یک لیست کشویی
echo Form::select('size', array('L' => 'Large', 'S' => 'Small'));
ایجاد یک لیست کشویی با پیش فرض انتخاب شده
echo Form::select('size', array('L' => 'Large', 'S' => 'Small'), 'S');
ایجاد لیست گروه بندی شده
echo Form::select('animal', array( 'Cats' => array('leopard' => 'Leopard'), 'Dogs' => array('spaniel' => 'Spaniel'),));
ایجاد یک لیست کشویی با یک محدوده
echo Form::selectRange('number', 10, 20);
ایجاد یک لیست با نام ماه
echo Form::selectMonth('month');
دکمه ها
ایجاد دکمه ارسال
echo Form::submit('Click Me!');
توجه: آیا نیاز به ایجاد یک عنصر دکمه دارید؟ روش دکمه را امتحان کنید . همان امضای ارسال را دارد .
ماکروهای سفارشی
ثبت ماکرو فرم
تعریف کمک های کلاس Form سفارشی خود به نام "ماکرو" آسان است. در اینجا نحوه عملکرد آن آمده است. ابتدا به سادگی ماکرو را با یک نام مشخص و یک بسته ثبت کنید:
Form::macro('myField', function(){ return '<input type="awesome">';});
اکنون می توانید ماکرو خود را با استفاده از نام آن فراخوانی کنید:
فراخوانی ماکرو فرم سفارشی
echo Form::myField();
##تولید URL
برای اطلاعات بیشتر در مورد ایجاد URL، مستندات مربوط به Helpers را بررسی کنید .