V5.1.15+
版本开始,可以使用下面的指令快速生成User
验证器。
php think make:validate index/User
可以直接在验证器类中使用message
属性定义错误提示信息,例如:
namespace app\index\validate;
use think\Validate;
class User extends Validate
{
protected $rule = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
'email' => 'email',
];
protected $message = [
'name.require' => '名称必须',
'name.max' => '名称最多不能超过25个字符',
'age.number' => '年龄必须是数字',
'age.between' => '年龄只能在1-120之间',
'email' => '邮箱格式错误',
];
}
为具体的验证场景或者数据表定义好验证器类,直接调用验证类的check
方法即可完成验证,下面是一个例子:
数据验证
在需要进行User
验证的控制器方法中,添加如下代码即可:
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
$data = [
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com',
];
$validate = new \app\index\validate\User;
if (!$validate->check($data)) {
dump($validate->getError());
}
}
}
具体请查看 http://www.shouce.ren/api/view/a/15680 验证
验证数据
下面是一个典型的验证数据的例子:
$rule = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
'email' => 'email',
];
$msg = [
'name.require' => '名称必须',
'name.max' => '名称最多不能超过25个字符',
'age.number' => '年龄必须是数字',
'age.between' => '年龄只能在1-120之间',
'email' => '邮箱格式错误',
];
$data = [
'name' => 'thinkphp',
'age' => 10,
'email' => 'thinkphp@qq.com',
];
$validate = Validate::make($rule,$msg);
$result = $validate->check($data);
if(!$result) {
dump($validate->getError());
}
二、使用缓存
// 使用Redis缓存
Cache::store('redis')->set('name','value',3600);
Cache::get('name');
参考 http://www.shouce.ren/api/view/a/15689 缓存设置
1. 缓存使用:
1> 设置缓存
设置缓存有效期
Cache::set('name',$value,3600);
2. session 驱动
支持指定 Session 驱动,配置文件如下:
return [
'type' => 'redis',
'prefix' => 'module',
'auto_start' => true,
// redis主机
'host' => '127.0.0.1',
// redis端口
'port' => 6379,
// 密码
'password' => '',
]
表示使用redis
作为session
类型。
三、分页的使用
ThinkPHP5.1
内置了分页实现,要给数据添加分页输出功能变得非常简单,可以直接在Db
类查询的时候调用paginate
方法:
// 查询状态为1的用户数据 并且每页显示10条数据
$list = Db::name('user')->where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();
也可以改成模型的分页查询代码:
// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();
模板文件中分页输出代码如下:
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list|raw}
四、验证码的使用
参照 http://www.shouce.ren/api/view/a/15704 扩展库里的 验证