thinkphp5.1学习笔记(2)

V5.1.15+版本开始,可以使用下面的指令快速生成User验证器。

php think make:validate index/User

可以直接在验证器类中使用message属性定义错误提示信息,例如:

 
 
  1. namespace app\index\validate;
  2. use think\Validate;
  3. class User extends Validate
  4. {
  5. protected $rule = [
  6. 'name' => 'require|max:25',
  7. 'age' => 'number|between:1,120',
  8. 'email' => 'email',
  9. ];
  10. protected $message = [
  11. 'name.require' => '名称必须',
  12. 'name.max' => '名称最多不能超过25个字符',
  13. 'age.number' => '年龄必须是数字',
  14. 'age.between' => '年龄只能在1-120之间',
  15. 'email' => '邮箱格式错误',
  16. ];
  17. }

为具体的验证场景或者数据表定义好验证器类,直接调用验证类的check方法即可完成验证,下面是一个例子:

数据验证

在需要进行User验证的控制器方法中,添加如下代码即可:

 
 
  1. namespace app\index\controller;
  2. use think\Controller;
  3. class Index extends Controller
  4. {
  5. public function index()
  6. {
  7. $data = [
  8. 'name' => 'thinkphp',
  9. 'email' => '[email protected]',
  10. ];
  11. $validate = new \app\index\validate\User;
  12. if (!$validate->check($data)) {
  13. dump($validate->getError());
  14. }
  15. }
  16. }

具体请查看  http://www.shouce.ren/api/view/a/15680    验证

验证数据

下面是一个典型的验证数据的例子:

 
 
  1. $rule = [
  2. 'name' => 'require|max:25',
  3. 'age' => 'number|between:1,120',
  4. 'email' => 'email',
  5. ];
  6. $msg = [
  7. 'name.require' => '名称必须',
  8. 'name.max' => '名称最多不能超过25个字符',
  9. 'age.number' => '年龄必须是数字',
  10. 'age.between' => '年龄只能在1-120之间',
  11. 'email' => '邮箱格式错误',
  12. ];
  13. $data = [
  14. 'name' => 'thinkphp',
  15. 'age' => 10,
  16. 'email' => '[email protected]',
  17. ];
  18. $validate = Validate::make($rule,$msg);
  19. $result = $validate->check($data);
  20. if(!$result) {
  21. dump($validate->getError());
  22. }

二、使用缓存

 
 // 使用Redis缓存 
 Cache::store('redis')->set('name','value',3600); 
 Cache::get('name'); 
 

参考   http://www.shouce.ren/api/view/a/15689      缓存设置

    1. 缓存使用:

        1> 设置缓存

            设置缓存有效期

 
 
  1. Cache::set('name',$value,3600);

    2. session 驱动

        支持指定 Session 驱动,配置文件如下:

    

 
 
  1. return [
  2. 'type' => 'redis',
  3. 'prefix' => 'module',
  4. 'auto_start' => true,
  5. // redis主机
  6. 'host' => '127.0.0.1',
  7. // redis端口
  8. 'port' => 6379,
  9. // 密码
  10. 'password' => '',
  11. ]

表示使用redis作为session类型。


三、分页的使用

    ThinkPHP5.1内置了分页实现,要给数据添加分页输出功能变得非常简单,可以直接在Db类查询的时候调用paginate方法:

 
 
  1. // 查询状态为1的用户数据 并且每页显示10条数据
  2. $list = Db::name('user')->where('status',1)->paginate(10);
  3. // 把分页数据赋值给模板变量list
  4. $this->assign('list', $list);
  5. // 渲染模板输出
  6. return $this->fetch();

也可以改成模型的分页查询代码:

 
 
  1. // 查询状态为1的用户数据 并且每页显示10条数据
  2. $list = User::where('status',1)->paginate(10);
  3. // 把分页数据赋值给模板变量list
  4. $this->assign('list', $list);
  5. // 渲染模板输出
  6. return $this->fetch();

模板文件中分页输出代码如下:

 
 
  1. <div>
  2. <ul>
  3. {volist name='list' id='user'}
  4. <li> {$user.nickname}</li>
  5. {/volist}
  6. </ul>
  7. </div>
  8. {$list|raw}

四、验证码的使用

    参照   http://www.shouce.ren/api/view/a/15704   扩展库里的 验证







猜你喜欢

转载自blog.csdn.net/json159/article/details/80828944