php Laravel框架学习(四) 之 表单与HTML
2016-11-27 15:57
771 查看
创建一个表单
[php] view
plain copy
{{ Form::open(array('url' => 'foo/bar')) }}
//
{{ Form::close() }}
或者:
{{ Form::open(['action' => 'stuInfo.add','method' =>'POST']) }}
//
{{ Form::close() }}
或者:
{{ Form::open(['route' => ['stuInfo.update',$stuInfo[0]->s_id]]) }}
//
{{ Form::close() }}
默认情况下,表单使用
[php] view
plain copy
echo Form::open(array('url' => 'foo/bar', 'method' => 'put'))
注意: 因为 HTML 表单只支持
您也可以通过指向命名路由或控制器函数打开一个表单:
[php] view
plain copy
echo Form::open(array('route' => 'route.name'))
echo Form::open(array('action' => 'Controller@method'))
您同样可以传递路由参数:
[php] view
plain copy
echo Form::open(array('route' => array('route.name', $user->id)))
echo Form::open(array('action' => array('Controller@method', $user->id)))
如果您的表单需要允许文件上传,请在数组参数中添加一个
[php] view
plain copy
echo Form::open(array('url' => 'foo/bar', 'files' => true))
Laravel 提供了一个简单的办法保护您的应用抵御跨域攻击。首先,一个随机的令牌添加在用户的 Session 中。无需劳作,这将自动完成。CSRF 令牌将将自动以隐藏域添加到表单中。如果你希望自己为这个隐藏域产生 HTML 代码,可以使用
在表单中手动添加一个 CSRF 令牌
[php] view
plain copy
echo Form::token();
在一个路由上附加 CSRF 过滤器
[php] view
plain copy
Route::post('profile', array('before' => 'csrf', function()
{
//
}));
经常您希望基于一个模型的内容填充一个表单。可以使用
打开一个模型表单
[php] view
plain copy
echo Form::model($user, array('route' => array('user.update', $user->id)))
现在当您生成一个表单元素,比如一个文本输入框,模型中与此相同名字的的值将被设置为文本框的值。比如,对于一个命名为
闪存中的值(旧输入)
输入值
模型中属性的值
这将允许我们快速构建表单,不仅能够绑定模型的值,还可以在验证出错的时候轻松地重新填充表单。
注意: 当使用
创建一个标签元素
[php] view
plain copy
echo Form::label('email', 'E-Mail Address');
指定其他 HTML 属性
[php] view
plain copy
echo Form::label('email', 'E-Mail Address', array('class' => 'awesome'));
注意: 创建一个标签元素后,您创建的任何与标签元素同名的表单元素将自动获取一个与名字相同的ID。
创建一个文本框
[php] view
plain copy
echo Form::text('username');
echo Form::text('txtName','值',['placeholder' => '请输入姓名']);
指定默认值
[php] view
plain copy
echo Form::text('email', 'example@gmail.com');
注意: hidden 和 textarea 方法拥有和 text 方法一样的形式。
创建一个密码框
[php] view
plain copy
echo Form::password('password');
创建其他输入框
[php] view
plain copy
echo Form::date($name, $value = null, $attributes = array());
echo Form::email($name, $value = null, $attributes = array());
echo Form::file($name, $attributes = array());
echo Form::number($name, $value = null, $attributes = array());
echo Form::search($name, $value = null, $attributes = array());
echo Form::telephone($name, $value = null, $attributes = array());
echo Form::url($name, $value = null, $attributes = array());
创建一个复选框或单选按钮
[php] view
plain copy
echo Form::checkbox('name', 'value');
echo Form::radio('name', 'value');
创建一个被选中的复选框或单选按钮
[php] view
plain copy
echo Form::checkbox('name', 'value', true);
echo Form::radio('name', 'value', true);
创建一个文件上传域
[php] view
plain copy
echo Form::file('image');
创建一个下拉列表
[php] view
plain copy
echo Form::select('size', array('L' => 'Large', 'S' => 'Small'));
创建一个有默认选中值的下拉列表
[php] view
plain copy
echo Form::select('size', array('L' => 'Large', 'S' => 'Small'), 'S');
创建一个分组的下拉列表
[php] view
plain copy
echo Form::select('animal', array(
'Cats' => array('leopard' => 'Leopard'),
'Dogs' => array('spaniel' => 'Spaniel'),
));
创建一个提交按钮
[php] view
plain copy
echo Form::submit('Click Me!');
注意: 需要创建一个按钮吗?尝试使用 button 方法,它拥有和 submit 一样的形式。
自定义一个定制的表单元素的助手函数也被称作为 "macros" 是很简单的事情。这里将展示如何实现。首先,使用一个给定的名字以及一个闭包函数注册一个宏:
注册一个表单宏
[php] view
plain copy
Form::macro('myField', function()
{
return '<input type="awesome">';
});
现在您可以通过它的名字调用这个宏:
调用一个定制的表单宏
[php] view
plain copy
echo Form::myField();
本文摘自:Laravel4-中文手册
[php] view
plain copy
echo Form::text('txtName','值',['placeholder' => '请输入姓名'])
[php] view
plain copy
{{ Form::open(array('url' => 'foo/bar')) }}
//
{{ Form::close() }}
或者:
{{ Form::open(['action' => 'stuInfo.add','method' =>'POST']) }}
//
{{ Form::close() }}
或者:
{{ Form::open(['route' => ['stuInfo.update',$stuInfo[0]->s_id]]) }}
//
{{ Form::close() }}
默认情况下,表单使用
POST方法,您可以很容易使用另一种方法:
[php] view
plain copy
echo Form::open(array('url' => 'foo/bar', 'method' => 'put'))
注意: 因为 HTML 表单只支持
POST和
GET方法,
PUT和
DELETE方法将通过自动添加一个
_method隐藏域到表单的方式进行模拟。
您也可以通过指向命名路由或控制器函数打开一个表单:
[php] view
plain copy
echo Form::open(array('route' => 'route.name'))
echo Form::open(array('action' => 'Controller@method'))
您同样可以传递路由参数:
[php] view
plain copy
echo Form::open(array('route' => array('route.name', $user->id)))
echo Form::open(array('action' => array('Controller@method', $user->id)))
如果您的表单需要允许文件上传,请在数组参数中添加一个
files选项:
[php] view
plain copy
echo Form::open(array('url' => 'foo/bar', 'files' => true))
CSRF保护
Laravel 提供了一个简单的办法保护您的应用抵御跨域攻击。首先,一个随机的令牌添加在用户的 Session 中。无需劳作,这将自动完成。CSRF 令牌将将自动以隐藏域添加到表单中。如果你希望自己为这个隐藏域产生 HTML 代码,可以使用token函数:
在表单中手动添加一个 CSRF 令牌
[php] view
plain copy
echo Form::token();
在一个路由上附加 CSRF 过滤器
[php] view
plain copy
Route::post('profile', array('before' => 'csrf', function()
{
//
}));
表单模型绑定
经常您希望基于一个模型的内容填充一个表单。可以使用 Form::model实现这个功能:
打开一个模型表单
[php] view
plain copy
echo Form::model($user, array('route' => array('user.update', $user->id)))
现在当您生成一个表单元素,比如一个文本输入框,模型中与此相同名字的的值将被设置为文本框的值。比如,对于一个命名为
闪存中的值(旧输入)
输入值
模型中属性的值
这将允许我们快速构建表单,不仅能够绑定模型的值,还可以在验证出错的时候轻松地重新填充表单。
注意: 当使用
Form::model的时候,请确认已使用
Form::close关闭您的表单!
标签
创建一个标签元素[php] view
plain copy
echo Form::label('email', 'E-Mail Address');
指定其他 HTML 属性
[php] view
plain copy
echo Form::label('email', 'E-Mail Address', array('class' => 'awesome'));
注意: 创建一个标签元素后,您创建的任何与标签元素同名的表单元素将自动获取一个与名字相同的ID。
文本框、多行文本框、密码框以及隐藏域
创建一个文本框[php] view
plain copy
echo Form::text('username');
echo Form::text('txtName','值',['placeholder' => '请输入姓名']);
指定默认值
[php] view
plain copy
echo Form::text('email', 'example@gmail.com');
注意: hidden 和 textarea 方法拥有和 text 方法一样的形式。
创建一个密码框
[php] view
plain copy
echo Form::password('password');
创建其他输入框
[php] view
plain copy
echo Form::date($name, $value = null, $attributes = array());
echo Form::email($name, $value = null, $attributes = array());
echo Form::file($name, $attributes = array());
echo Form::number($name, $value = null, $attributes = array());
echo Form::search($name, $value = null, $attributes = array());
echo Form::telephone($name, $value = null, $attributes = array());
echo Form::url($name, $value = null, $attributes = array());
复选框和单选按钮
创建一个复选框或单选按钮[php] view
plain copy
echo Form::checkbox('name', 'value');
echo Form::radio('name', 'value');
创建一个被选中的复选框或单选按钮
[php] view
plain copy
echo Form::checkbox('name', 'value', true);
echo Form::radio('name', 'value', true);
文件上传域
创建一个文件上传域[php] view
plain copy
echo Form::file('image');
下拉列表
创建一个下拉列表[php] view
plain copy
echo Form::select('size', array('L' => 'Large', 'S' => 'Small'));
创建一个有默认选中值的下拉列表
[php] view
plain copy
echo Form::select('size', array('L' => 'Large', 'S' => 'Small'), 'S');
创建一个分组的下拉列表
[php] view
plain copy
echo Form::select('animal', array(
'Cats' => array('leopard' => 'Leopard'),
'Dogs' => array('spaniel' => 'Spaniel'),
));
按钮
创建一个提交按钮[php] view
plain copy
echo Form::submit('Click Me!');
注意: 需要创建一个按钮吗?尝试使用 button 方法,它拥有和 submit 一样的形式。
定制宏
自定义一个定制的表单元素的助手函数也被称作为 "macros" 是很简单的事情。这里将展示如何实现。首先,使用一个给定的名字以及一个闭包函数注册一个宏:注册一个表单宏
[php] view
plain copy
Form::macro('myField', function()
{
return '<input type="awesome">';
});
现在您可以通过它的名字调用这个宏:
调用一个定制的表单宏
[php] view
plain copy
echo Form::myField();
本文摘自:Laravel4-中文手册
[php] view
plain copy
echo Form::text('txtName','值',['placeholder' => '请输入姓名'])
相关文章推荐
- php Laravel框架学习(四) 之 表单与HTML
- php Laravel框架学习(三) 之 路由
- 后台开发学习(四)HTML5表单的使用PHP环境搭载和HTML表单的提交
- php最新Laravel框架5.3视频学习
- 关于laravel框架报错信息显示 can't not found 'views.xxxxx.html.php"
- 20160114html学习笔记表单框架颜色脚本字符实体
- 学习html三~~表单和框架
- Html基础学习四:列表,超链接,表格,层,框架,表单
- [php学习九]html的表单练习
- Laravel 5框架学习之子视图和表单复用
- 关于php中laravel框架的学习--适合菜鸟初学者
- php laravel框架学习笔记 (二) 数据库操作
- HTML学习之表格表单及框架介绍
- Laravel 5框架学习之表单
- php Laravel框架学习(一) 之 建立数据库并填充测试数据
- PHP最优雅的框架——laravel学习使用入门
- laravel框架学习(三)win下php artisan tinker 测试数据时,无法运行报错的解决方法
- php laravel框架学习笔记 (一) 基本工作原理
- HTML学习笔记三表单和框架
- PHP Laravel 框架学习笔记(一) 路由器 中间件 基础使用