php Laravel框架学习(四) 之 表单与HTML

php Laravel框架学习(四) 之 表单与HTML

本文将介绍 Laravel 框架的 表单与HTML 标签

创建一个表单

{{ 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 方法,您可以很容易使用另一种方法:

echo Form::open(array('url' => 'foo/bar', 'method' => 'put'))

注意: 因为 HTML 表单只支持 POSTGET 方法, PUTDELETE 方法将通过自动添加一个 _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保护

Laravel 提供了一个简单的办法保护您的应用抵御跨域攻击。首先,一个随机的令牌添加在用户的 Session 中。无需劳作,这将自动完成。CSRF 令牌将将自动以隐藏域添加到表单中。如果你希望自己为这个隐藏域产生 HTML 代码,可以使用token 函数:

在表单中手动添加一个 CSRF 令牌

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'));

注意: 创建一个标签元素后,您创建的任何与标签元素同名的表单元素将自动获取一个与名字相同的ID。

文本框、多行文本框、密码框以及隐藏域

创建一个文本框

echo Form::text('username');

echo Form::text('txtName','值',['placeholder' => '请输入姓名']);
 

指定默认值

echo Form::text('email', 'example@gmail.com');

注意: hiddentextarea 方法拥有和 text 方法一样的形式。

创建一个密码框

echo Form::password('password');

创建其他输入框

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());

复选框和单选按钮

创建一个复选框或单选按钮

echo Form::checkbox('name', 'value');

echo Form::radio('name', 'value');

创建一个被选中的复选框或单选按钮

echo Form::checkbox('name', 'value', true);

echo Form::radio('name', 'value', true);

文件上传域

创建一个文件上传域

echo Form::file('image');

下拉列表

创建一个下拉列表

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::submit('Click Me!');

注意: 需要创建一个按钮吗?尝试使用 button 方法,它拥有和 submit 一样的形式。

定制宏

自定义一个定制的表单元素的助手函数也被称作为 "macros" 是很简单的事情。这里将展示如何实现。首先,使用一个给定的名字以及一个闭包函数注册一个宏:

注册一个表单宏

Form::macro('myField', function()
{
    return '<input type="awesome">';
});

现在您可以通过它的名字调用这个宏:

调用一个定制的表单宏

echo Form::myField();

本文摘自:Laravel4-中文手册

echo Form::text('txtName','值',['placeholder' => '请输入姓名'])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel 是一款基于 PHP 语言的开源 Web 应用框架,它采用了 MVC(Model-View-Controller)的软件设计模式,具有高效、简洁、优雅、可扩展等特点,被广泛应用于 Web 应用开发领域。在学习 Laravel 框架的过程中,可以进行一些实验来深入了解 Laravel 的特点和使用方法。 下面总结一些常见的 Laravel 实验: 1. 新建 Laravel 项目:在命令行中进入目标文件夹,输入 `composer create-project laravel/laravel` 命令即可新建 Laravel 项目。 2. 数据库迁移:Laravel 提供了数据库迁移功能,可以简化数据库表的创建和修改。在命令行中输入 `php artisan make:migration create_users_table` 命令即可创建一个名为 create_users_table 的迁移文件,修改该文件可以定义用户表的结构,然后运行 `php artisan migrate` 命令即可将表结构同步到数据库中。 3. 路由设置:Laravel 的路由设置非常简便,可以通过在 `routes/web.php` 文件中添加路由来定义 URL 和对应的控制器方法。例如,可以通过以下代码来定义一个 `/home` 的路由: ``` Route::get('/home', 'HomeController@index'); ``` 4. 控制器设置:Laravel 的控制器可以通过命令行快速创建,例如,可以通过 `php artisan make:controller HomeController` 命令来创建一个名为 HomeController 的控制器。然后,在该控制器中定义一个 `index` 方法,即可在路由中调用该方法。 5. 视图设置:Laravel 的视图文件存放在 `resources/views` 目录下,可以通过在控制器方法中返回视图文件名的方式来渲染视图。例如,可以在 HomeController 中添加以下代码: ``` public function index() { return view('home'); } ``` 6. 表单验证:Laravel 提供了表单验证功能,可以在控制器方法中通过 `validate` 方法对表单数据进行验证。例如,可以在 HomeController 中添加以下代码: ``` public function store(Request $request) { $validatedData = $request->validate([ 'name' => 'required|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|confirmed|min:6', ]); } ``` 以上就是一些常见的 Laravel 实验总结,通过这些实验可以更深入地了解 Laravel 的特点和使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值