نسخه:

فرم ها و HTML

باز کردن یک فرم

باز کردن یک فرم

{{ 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 به عنوان مقدار تنظیم می شود. با این حال، بیشتر وجود دارد! اگر موردی در داده فلش جلسه با نام ورودی مطابقت داشته باشد، بر مقدار مدل اولویت دارد. بنابراین، اولویت به این صورت است:

  1. داده های فلش جلسه (ورودی قدیمی)
  2. ارزش تصویب شده صریحا
  3. داده های ویژگی مدل

این به شما اجازه می دهد تا به سرعت فرم هایی بسازید که نه تنها به مقادیر مدل متصل می شوند، بلکه در صورت وجود خطای اعتبار سنجی در سرور، به راحتی دوباره پر می شوند!

توجه: هنگام استفاده 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 را بررسی کنید .