laravel 獲取器和修改器


獲取器和修改器:

   修改器:

         就是當你往數據庫寫數據時,你想對寫入的數據進行處理 然后再寫入數據庫。

         比如,你想當為  換模完成時間(times) 這個字段 賦值時,計算  實際換模時長(long) 這個字段的值。

         你就在有該字段的表 的模型里,加上setTimesAttribute() 方法; 

              public function  setTimesAttribute($value){        //這里的$value 就是 給times賦值時 傳過來的值。

                     $this->attributes['times'] = $value;         // attributes 取的是 白名單在 times 之前的 字段的值。 即跟times 一起傳到數據庫的值。但是不是所有的都能取到,只能取到按照白名單的順序,排在times 字段之前的值。       

                     if( isset($this->attributes['id']) ){               //當創建時,沒有id,更新的時候有id ,(即,創建記錄的時候雖然times 被賦值,該方法被執行,但是沒有id, 更新的時候有id ,可以根據有無id 來判斷是新建還是更新)

                           $this->attributes['long'] = floor((strototime($value) - strtotime($this->attributes['call'])) % 86400 / 60);

                    }

                   $this->user   //還可以取user 模型里的數據

             }

          當我們為模型上的:times賦值時該修改器會被自動調用:

         修改器里的(set) $this->attributes 默認的,獲取的是修改的那條數據。

         $this->user   獲取的是 user   表里的數據

         這里$this->attributes 取的值是根據前台傳過來的值,然后對應白名單里字段的順序對應過來的,有可能遺漏


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM