日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

二十一、PHP框架Laravel学习笔记——模型的访问器和修改器

發(fā)布時(shí)間:2024/7/5 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二十一、PHP框架Laravel学习笔记——模型的访问器和修改器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.訪問器

  • 訪問器:就是在獲取數(shù)據(jù)列表時(shí),攔截屬性并對屬性進(jìn)行修改的過程;
  • 比如,我們在輸出性別時(shí),在性別左右加上括號,或給郵件轉(zhuǎn)換為大寫;
  • //訪問器,前固定 get,后固定 Attribute,Gender 是字段名 //參數(shù)$value 是源字段值,可修改返回 public function getGenderAttribute($value) { return '【'.$value.'】'; }

    PS:如果字段名是兩個(gè)單詞中間是下劃線:user_name,那么方法名:getUserNameAttribute()

  • 我們也可以創(chuàng)建一個(gè)虛擬字段,用已有的數(shù)據(jù)字段進(jìn)行整合,不過要進(jìn)行數(shù)據(jù)追加;
  • //將虛擬字段追加到數(shù)據(jù)對象列表里去 protected $appends = ['info']; //創(chuàng)建一個(gè)虛擬字段 public function getInfoAttribute() { return $this->username.'-'.$this->gender; }


    PS:注意,如果 gender 之前已經(jīng)有訪問器修改過,上面的方法會得到修改過的結(jié)果;
    PS:如果要使用源字段進(jìn)行創(chuàng)建虛擬字段,需要使用下面這種:

    return $this->attributes['username'].'-'.$this->attributes['gender'];

    二.修改器

  • 修改器,相對于訪問器,是在寫入的時(shí)候攔截,進(jìn)行修改再寫入;
  • //修改器,寫入數(shù)據(jù)時(shí),將郵箱轉(zhuǎn)換為大寫 public function setEmailAttribute($value) { $this->attributes['email'] = strtoupper($value);}

  • 可以添加默認(rèn)的日期列,默認(rèn) created_at 和 updated_at;
  • //設(shè)置可以自動寫入日期的列 protected $dates = [ 'details' ];
  • 可以設(shè)置字段輸出的類型,比如設(shè)置一個(gè)布爾型,輸出時(shí)就是 true 和 false;
  • //設(shè)置字段類型 protected $casts = [ 'details' => 'boolean' ];

    總結(jié)

    以上是生活随笔為你收集整理的二十一、PHP框架Laravel学习笔记——模型的访问器和修改器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。