zoukankan      html  css  js  c++  java
  • thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)

    thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)

    一、总结

    记得看下面

    1、获取器的作用是在获取数据的字段值后自动进行处理

    2、修改器的作用是可以在数据赋值的时候自动进行转换处理

    3、获取器应用:我们在数据库存性别的时候不能存男女,而可以存0(未知)1(男)2(女),这样快,获取器就是我在控制器中通过$user->toArray()从模型获取数据的时候,自动调用模型中的getSexAttr()方法,从而返回的结果里面直接是男女,而不是012

    4、模型中的方法是自动调用的,所以函数的命名规则是一一对应的,控制器数据表中自动sex,模型中函数getSexAttr(),如果字段 user_status 修改器名字getUserStatusAttr

    5、修改器应用:修改密码的时候,自动md5加密

    6、控制器和修改器都有特定的触发方法,修改器(save可以,update不可以),控制器(看下面案例)

    二、thinkphp模型中的获取器和修改器

    2、获取器

            

             1、数据模型

                       // sex 的获取器

                       public function getSexAttr($val){

                                switch ($val) {

                                         case '0':

                                                   return "未知";

                                                   break;

                                         case "1":

                                                   return "男";

                                                   break;

                                         case "2":

                                                   return "女";

                                                   break;

                                }

                       }

             2、控制器

                       // 获取ID为15 的数据

                       $user=User::get(17);

                       // 经过获取器的操作

                       dump($user->toArray());

                       dump($user->sex);

                       // 不经过获取器处理

                       dump($user->getData());

             3、注意

                       1、如果字段 user_status 修改器名字getUserStatusAttr

                       2、如果字段 status 修改器名字getStatusAttr

    3、修改器

             1、数据模型

                       // 用户密码的修改器

                       public function setPassAttr($val){

                                return md5($val);

                       }

             2、控制器

                       // 修改 ID 为15 的密码

                       $user=new User();

                       // 密码会实现自动加密

                       $res=$user->save(['pass'=>'456'],['id'=>15]);

                       dump($res);

             3、注意

                       1、修改器的触发条件是 save方法

  • 相关阅读:
    CodeForces C. Songs Compression
    CodeForces B. Obtaining the String
    Linux-命令学习-df
    phplib系统开发经验总结
    阶段3-团队合作项目-网络安全传输系统sprint1-传输子系统设计第3课-加密传输优化
    阶段3-团队合作项目-网络安全传输系统sprint1-传输子系统设计第2课-OpenSSL加密系统
    阶段3-团队合作项目-网络安全传输系统sprint1-传输子系统设计第1课-系统程序框架搭建
    阶段3-团队合作项目-网络安全传输系统sprint0-产品规划与设计第1课-产品功能展示
    阶段2-新手上路项目-移动物体监控系统Sprint4-嵌入式web服务器开发第3课-CGI程序开发
    阶段2-新手上路项目-移动物体监控系统Sprint4-嵌入式web服务器开发第2课-CGI快速入门-网页控制LED
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9027120.html
Copyright © 2011-2022 走看看