php多文件上传打包成一个压缩包

字符串翻转

select2以分页形式查询数据

laravel 表单验证

Yii框架学习笔记五

laravel 之 常用方法

Laravel 验证规则

如何进行验证

典型的注册表单:

路由部分:

可用的验证规则

regex:pattern(正则)

验证此规则的值必须符合给定的正则表达式。

accepted(yes|no|1)

验证此规则的值必须是 yes、 on 或者是 1。这在验证是否同意”服务条款”的时候非常有用。

in:foo,bar,…(in 规则)

验证此规则的值必须在给定的列表中存在。

notin:_foo,bar,…(not in 规则)

验证此规则的值必须在给定的列表中不存在。

alpha(全部字母)

验证此规则的值必须全部由字母字符构成。

numeric(数字)

验证此规则的值必须是一个数字。

alpha_num(字母|数字)

验证此规则的值必须全部由字母和数字构成。

alpha_dash(字母|数字|中划线|下划线)

验证此规则的值必须全部由字母、数字、中划线或下划线字符构成。

url(合法 URL,不严谨)

验证此规则的值必须是一个合法的 URL。 
注意: 已经证实此规则不严谨,类似 2http://url.com 的 URL 可以通过验证。

active_url(合法 URL,基于 checkdnsrr)

验证此规则的值必须是一个合法的 URL,根据 PHP 函数 checkdnsrr。 
注意: 由于是基于 checkdnsrr 因此也可用于验证邮箱地址是否存在。

email(电子邮件)

验证此规则的值必须是一个合法的电子邮件地址。

image (jpeg|png|bmp|gif)

验证此规则的值必须是一个图片 (jpeg, png, bmp 或者 gif)。

integer(整数)

验证此规则的值必须是一个整数。

ip(IP 地址)

验证此规则的值必须是一个合法的 IP 地址。

before:date(给定日期之前)

验证此规则的值必须在给定日期之前,日期将通过 PHP 函数 strtotime 传递。

after:date(给定日期之后)

验证此规则的值必须在给定日期之后,日期将通过 PHP 函数 strtotime 传递。

between:min,max(min 和 max 之间)

验证此规则的值必须在给定的 min 和 max 之间。字符串、数字以及文件都将使用大小规则进行比较。

confirmed(二次确认域,如“密码的二次确认域”)

验证此规则的值必须和 foo_confirmation 的值相同。比如,需要验证此规则的域是 password,那么在输入中必须有一个与之相同的 password_confirmation 域。

same:field(值与给定域相同)

验证此规则的值必须与给定域的值相同。

size:value(大小与给定域的值相同)

验证此规则的值的大小必须与给定的 value 相同。 
对于字符串,value 代表字符的个数, 
对于数字,value 代表它的整数值, 
对于文件,value 代表文件以KB为单位的大小。

date(合法日期字符串,基于 strtotime)

验证此规则的值必须是一个合法的日期,根据 PHP 函数 strtotime。

dateformat:_format(format 格式 y-m-d H:i:s)

验证此规则的值必须符合给定的 format 的格式,根据 PHP 函数 date_parse_from_format。

different:field(不同于)

验证此规则的值必须与指定的 field 域的值不同。

min:value(最小值)

验证此规则的值必须大于最小值 value。字符串、数字以及文件都将使用大小规则进行比较。

max:value(最大值)

验证此规则的值必须小于最大值 value。字符串、数字以及文件都将使用大小规则进行比较。

mimes:foo,bar,…(MIME 类型限制)

验证此规则的文件的 MIME 类型必须在给定的列表中。

MIME 规则的基础使用

注意: 当使用 regex 模式的时候,有必要使用数组指定规则,而不是管道分隔符,特别是正则表达式中包含一个管道字符的时候。

required(必填)

验证此规则的值必须在输入数据中存在。

requiredif:_field,value(当指定域为某个值时,必填)

当指定的域为某个值的时候,验证此规则的值必须存在。

requiredwith:_foo,bar,…(当指定域存在时,必填)

仅当指定的域存在的时候,验证此规则的值必须存在。

requiredwithout:_foo,bar,…(当指定域不存在时,必填)

仅当指定的域不存在的时候,验证此规则的值必须存在。

exists:table,column(必须存在于 table 表的 column 字段数据中)

验证此规则的值必须在指定的数据库的表中存在。

Exists 规则的基础使用

指定列名

您也可以指定更多的条件,将以 “where” 的形式添加到查询。

unique:table,column,except,idColumn(数据库唯一)

验证此规则的值必须在给定的数据库的表中唯一。如果 column 没有被指定,将使用该域的名字。

Unique 规则的基础使用

指定列名

强制忽略一个给定的 ID

添加额外的where语句 
你还可以指定更多条件,这些条件将被添加到查询的”where”语句中:

在上面的规则中,只有account_id 为 1 的行才会被包含到unique检查中。

如何获取错误消息

构造为 JSON 数据(API)

重定向,直接传递至下一个页面

视图中如何获取传递过来的错误消息

注意: $errors 是系统预定义变量,任何模板中均可使用。

获取一个域的第一个错误消息

获取一个域的全部错误消息

获取全部域的全部错误消息

检查一个域是否存在消息

以某种格式获取一条错误消息

注意: 默认情况下,消息将使用与 Bootstrap 兼容的语法进行格式化。

以某种格式获取所有错误消息

定制验证规则

注意: 匿名函数 和 指向普通类方法 的 规则扩展 并不推荐,因此直接介绍如何直接扩展官方的验证器。

编写扩展验证器类:

注册定制的验证器扩展:

详细的编写方法请参照官方类 /vendor/laravel/framework/src/Illuminate/Validation/Validator.php 。

定制验证消息

针对某一个验证规则:

针对指定域的某一规则:

在语言文件中定义 /app/lang/zh-CN/validation.php:

摘自:http://my.oschina.net/5say/blog/186568

Laravel 4 Eloquent 基础

创建 Eloquent 模型

注意: 表名将默认为:类名的复数形式并小写。主键将默认为: id 。

自定义表名(protected $table)

自定义主键(protected $primaryKey)

关闭自递增(protected $incrementing)

关闭 创建时间 与 更新时间 的自动维护(protected $timestamps)

注意 在默认情况下需要在表中定义 updated_at 和 created_at 字段。如果不希望它们被自动维护,请在模型中设置 $timestamps 属性为 false。

开启软删除(protected $softDelete)

自定义数据库连接(protected $connection)

查询

在查询中临时改变数据库连接(on)

获取所有数据(all|get)

使用主键检索某一条数据(find)

获取结果中的第一条数据(first)

根据主键获取一条记录或者抛出一个异常(findOrFail|firstOrFail)

注册错误处理器,请监听 ModelNotFoundException:

指定需要获取的字段(pluck)

列表形式获取表中的某个字段值(lists)

可以通过lists的第二个参数为返回的数组自定义键名:

指定需要获取的行数(take)

统计(count)

自定义 where 语句(whereRaw)

筛选重复(distinct)

插入

安全创建

集体赋值

白名单(protected $fillable)

黑名单(protected $guarded)

阻止所有属性集体赋值

使用模型的 Create 函数

更新

更新一个检索到的模型

push 操作

仅更新时间戳(touch)

删除

常规方法

根据主键删除(destroy)

软删除

使用条件

模型中开启软删除:

表中必须添加 deleted_at 字段:

使用方法

与删除相同,只是数据并非真的删除,而是通过 deleted_at 字段标记。

强制软删除的数据包含到结果集中(withTrashed)

仅取出软删除的数据(onlyTrashed)

检测一个给定的模型实例是否被软删除(trashed)

恢复一个已被软删除的记录(restore)

彻底删除(forceDelete)

定制的时间戳格式

针对系统的自动维护三字段: created_at updated_at deleted_at

查询范围

定义一个查询范围

使用一个查询范围

动态范围

添加参数到您的范围函数:

然后在范围函数调用中传递参数:

摘自:http://my.oschina.net/5say/blog/188084

Laravel 数据库操作学习笔记一