Laravel 4之表单

创建表单

除了原有的方式创建表单,Laravel提供了一种便捷的方式

  1. <!-- app/views/form.blade.php -->
  2. Form::open(array('url' => 'our/target/route'))
  3. Form::close()

编译后HTML为

  1. <formmethod="POST"action="http://demo.dev/our/target/route"accept-charset="UTF-8">
  2. <inputname="_token"type="hidden"value="83KCsmJF1Z2LMZfhb17ihvt9ks5NEcAwFoRFTq6u">
  3. </form>

自定义提交方法

  1. Form::open(array(
  2. 'url'=>'our/target/route',
  3. 'method'=>'GET',
  4. 'accept-charset'=>'ISO-8859-1'
  5. ))
  6. Form::close()

在表单中需要上传文件

  1. Form::open(array(
  2. 'url'=>'our/target/route',
  3. 'files'=>true
  4. ))
  5. Form::close()

在表单中指向路由别名或控制器

  1. Form::open(array('route'=>'my_route'))
  2. orm::open(array('action'=>'MyController@myAction'))

表单标签

Lable标签

  1. Form::label('first_name','First Name')
  2. //<label for="first_name">First Name</label>
  3. Form::label('first_name','First Name', array('id'=>'first_name'))
  4. //<label for="first_name" id="first_name">First Name</label>

文本域标签

  1. Form::text('first_name','Taylor Otwell')
  2. //<input name="first_name" type="text" value="Taylor Otwell">
  3. orm::textarea('description','Best field ever!')
  4. //<textarea name="description" cols="50" rows="10">Best field ever!</textarea>
  5. Form::password('secret')
  6. //<input name="secret" type="password" value="">
  7. Form::email('email','me@email.com')
  8. //<input name="email" type="email" value="me@email.com">
  9. Form::hidden('panda','luishi')
  10. //<input name="panda" type="hidden" value="luishi">

多选框标签

  1. Form::checkbox('pandas_are_cute','1',true)
  2. //<input checked="checked" name="pandas_are_cute" type="checkbox" value="1">

单选框标签

  1. Form::radio('panda_colour','red',true)
  2. //<input checked="checked" name="panda_colour" type="radio" value="red">

下拉菜单

  1. Form::select('panda_colour', array(
  2. 'red'=>'Red',
  3. 'black'=>'Black',
  4. 'white'=>'White'
  5. ),'red')
  6. //<select id="panda_colour" name="panda_colour">
  7. <option value="red" selected="selected">Red</option>
  8. <option value="black">Black</option>
  9. <option value="white">White</option>
  10. </select>
  11. //菜单分组
  12. Form::select('bear', array(
  13. 'Panda'=> array(
  14. 'red'=>'Red',
  15. 'black'=>'Black',
  16. 'white'=>'White'
  17. ),
  18. 'Character'=> array(
  19. 'pooh'=>'Pooh',
  20. 'baloo'=>'Baloo'
  21. )
  22. ),'black')

文件上传标签

  1. Form::file('avatar')
  2. //<input name="avatar" type="file">

按钮标签

  1. Form::submit('Save')
  2. //<input type="submit" value="Save">
  3. Form::button('Smile')
  4. //<button type="button">Smile</button>
  5. Form::reset('Clear')
  6. <input type="reset" value="Clear">

图片标签

  1. Form::image(asset('my/image.gif','submit'))
  2. //<input src="https://demo.dev/my/image.gif" type="image">

自定义宏

定义宏

  1. Form::macro('fullName',function()
  2. {
  3. return'<p>Full name: <input type="text" name="full_name"></p>';
  4. });

使用宏

  1. Form::fullName();

使用参数

  1. Form::macro('fullName',function($name)
  2. {
  3. return'<p>Full name: <input type="text" name="'.$name.'"></p>';
  4. });
  5. Form::fullName('my_field')

CSRF防御机制

使用Form::open()会自动创建添加CSRF令牌,也可以手动添加CSRF令牌到表单中

  1. <formaction=""method="POST">
  2. </form>

使用默认的CSRF过滤器

  1. Route::post('/handle-form', array('before'=>'csrf',function()
  2. {
  3. // Handle our posted form data.
  4. }));

结束

[转]Laravel 4之表单的更多相关文章

  1. laravel中form表单,ajax传值没反应

    laravel中form表单,ajax传值没反应时,可能是令牌有问题. form中添加: {{csrf_token()}} ajax中添加: data: {'page': page, '_token' ...

  2. php laravel加密 form表单认证 laravel分页

    use Illuminate\Support\Facades\Crypt; echo Crypt::encrypt(123); //加密echo "<br>";//解密 ...

  3. Laravel在进行表单验证时,错误信息未返回

    马上要毕业了,找了现在的这家公司,压力不大,自己也比较喜欢,唯一的遗憾就是手机号莫得换了(找不到换的借口). 进入正题: 之前自己的博客(http://lxiaoke.cn)是用ThinkPHP开发的 ...

  4. laravel中的表单请求类型和CSRF防护(六)

    laravel中为我们提供了绑定不同http请求类型的函数. Route::get('/test', function () {}); Route::post('/test', function () ...

  5. laravel中设置表单的方式,以及获取表单的提交的数据

  6. Laravel教程 六:表单 Forms

    Laravel教程 六:表单 Forms 此文章为原创文章,未经同意,禁止转载. Form laravel 5.2 之后请使用 laravelcollective/html 替换 illuminate ...

  7. Laravel表单传值

    仔细阅读过Laravel官方文档的就不用看啦~ 整理下之前遇到的关于Laravel表单的一些小问题 表单传值无法传过去,因为laravel做了表单的防护 只需要将{{ csrf_field() }}放 ...

  8. laravel中,提交表单后给出提示例如添加成功,添加失败等等

    laravel中的表单插入,我想在表单插入成功后,可以像thinkphp一样可以有一个提示内容,上网Google,他们还是给出的方法就是 return redirect('/')->with(' ...

  9. Laravel 5系列教程六:表单 Forms

    免费视频教程地址https://laravist.com/series/laravel-5-basic 在开始之前,我们把界面先美化一点点先: 首先到https://github.com/JellyB ...

随机推荐

  1. C++中的对象数组

    类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性. 当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法. 例如,一个班有50个学生,我们定义了一个学生 ...

  2. oracle以web方式登录EM、ISQLPlus

    1. 检查主机名/IP.端口安装时的主机名/IP.端口记录在$ORACLE_HOME/install/portlist.ini 文件中.缺省是:一般用户                     htt ...

  3. <.net>委托初探

    最近在学<.net深入体验与实战精要>. 今天就来初步讲解下委托. 一句话:委托定义了方法类型,可以将方法当做另一个方法的参数进行传递.委托包涵的只是方法的地址,而不是数据.类似于c指针. ...

  4. ASP.NET 根据现有动态页面生成静态Html

    现有动态页面的格式都是类似 pageName.aspx?ID=1的格式,后面由于发布服务器的原因,要求将动态页面转为静态html后上传. 首先根据页面生成的格式,枚举获取页面html: foreach ...

  5. Windows命令行(DOS命令)教程–2 (转载) http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_1.html

    二.符号约定 为了便于说明格式,这里我们使用了一些符号约定,它们是通用的: C: 盘符 Path 路径 Filename 文件名 .ext 扩展名 Filespec 文件标识符 [ ] 方括号中的项目 ...

  6. 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案

    作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段.简单地说,Sharding就是将原来单一 ...

  7. 【android】修改android默认应用图标

    我自己做的一个小程序,想更改程序安装后的默认显示图片,但是我发现只能改一次,以后再改还是显示第一次更改后的图片(此时我已把最后一次更改前的全部图片都删除了,所以不会是名称填错),这是为什么??求高人指 ...

  8. Asp.net mvc 3 file uploads using the fileapi

    Asp.net mvc 3 file uploads using the fileapi I was recently given the task of adding upload progress ...

  9. DESTOON伪静态的设置/news/1.html格式

    在本地测试了,DT默认伪静态格式是这样http://127.0.0.2/news/show/1.htmlhttp://127.0.0.2/news/show1-1.html但是这种不利于seo优化所以 ...

  10. kafka相关应用

    一.kafka官网地址 http://kafka.apache.org 下载地址: http://kafka.apache.org/downloads.html 二.版本 0.9.0.1 is the ...