thinkphp模型中的獲取器和修改器(根據字段名自動調用模型中的方法)

thinkphp模型中的獲取器和修改器(根據字段名自動調用模型中的方法)

1、總結

記得看下面php

一、獲取器的做用是在獲取數據的字段值後自動進行處理thinkphp

二、修改器的做用是能夠在數據賦值的時候自動進行轉換處理數據庫

三、獲取器應用:咱們在數據庫存性別的時候不能存男女,而能夠存0(未知)1(男)2(女),這樣快,獲取器就是我在控制器中經過$user->toArray()從模型獲取數據的時候,自動調用模型中的getSexAttr()方法,從而返回的結果裏面直接是男女,而不是012函數

四、模型中的方法是自動調用的,因此函數的命名規則是一一對應的,控制器數據表中自動sex,模型中函數getSexAttr(),若是字段 user_status 修改器名字getUserStatusAttr加密

五、修改器應用:修改密碼的時候,自動md5加密spa

六、控制器和修改器都有特定的觸發方法,修改器(save能夠,update不能夠),控制器(看下面案例)md5

 

 

2、thinkphp模型中的獲取器和修改器

二、獲取器

        

         一、數據模型get

 

                   // sex 的獲取器it

                   public function getSexAttr($val){io

                            switch ($val) {

                                     case '0':

                                               return "未知";

                                               break;

                                     case "1":

                                               return "男";

                                               break;

                                     case "2":

                                               return "女";

                                               break;

                            }

                   }

 

 

         二、控制器

 

                   // 獲取ID爲15 的數據

                   $user=User::get(17);

 

                   // 通過獲取器的操做

                   dump($user->toArray());

                   dump($user->sex);

 

                   // 不通過獲取器處理

                   dump($user->getData());

 

 

         三、注意

 

                   一、若是字段 user_status 修改器名字getUserStatusAttr

                   二、若是字段 status 修改器名字getStatusAttr

 

 

三、修改器

         一、數據模型

 

                   // 用戶密碼的修改器

 

                   public function setPassAttr($val){

 

                            return md5($val);

                   }

 

 

         二、控制器

 

                   // 修改 ID 爲15 的密碼

 

                   $user=new User();

 

                   // 密碼會實現自動加密

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

 

                   dump($res);

 

 

         三、注意

 

                   一、修改器的觸發條件是 save方法

相關文章
相關標籤/搜索