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方法

  • 相关阅读:
    洛谷 1339 最短路
    洛谷 1330 封锁阳光大学 图论 二分图染色
    洛谷 1262 间谍网络 Tarjan 图论
    洛谷 1373 dp 小a和uim之大逃离 良心题解
    洛谷 1972 莫队
    洛谷 2158 数论 打表 欧拉函数
    洛谷 1414 数论 分解因数 水题
    蒟蒻的省选复习(不如说是noip普及组复习)————连载中
    关于筛法
    关于整数划分的几类问题
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9027120.html
Copyright © 2011-2022 走看看