当前位置:首页 > Laravel > Laravel框架之模型访问器与修改器

Laravel框架之模型访问器与修改器

Laravel框架之模型访问器与修改器

知识点 1.访问器与修改器的作用 2.访问器与修改器的命名方法 3.访问器与修改器的生效范围


1.访问器与修改器的作用

  • 访问器: 用户使用模型方法查询数据时会自动调用的方法

  • 修改器: 用户设置模型数据时会自动调用的模型方法


2.访问器与修改器的命名方法

  • 访问器: get + '驼峰法命名的字段名' + Attribute($value): getAgeAttribute($value){}

  • 修改器: set + '驼峰法命名的字段名' + Attribute($value): setCreateTimeAttribute($value){}


3.访问器与修改器的生效范围

  • 只有使用模型中的方法操作时,才会自动触发模型中的定义的访问器和修改器

  • 查询构造器方法不会触发模型访问器和修改器,一定要注意


源码

1.模型: app/models/StuModel.php

<?php

namespace App\models;

use Illuminate\Database\Eloquent\Model;

class StuModel extends Model
{
    //数据表
    protected $table = 'stu';
    //主键
    protected $primaryKey = 'id';
    //时间戳
    public $timestamps = true;
    //时间格式
    protected $dateFormat = 'U';
    //自定义时间戳字段名称
    const CREATED_AT = 'create_time';
    const UPDATED_AT = 'update_time';

    // 时间访问器
    public function getCreateTimeAttribute($value)
    {
        return date('Y/m/d',$value);
    }

    public function getUpdateTimeAttribute($value)
    {
        return date('Y/m/d',$value);
    }

    // 设置器
    public function setAgeAttribute($value)
    {
        if ($value >= 18 && $value <=50) {
            $this->attributes['age'] = $value;
        } else {
            return '非法数据';
        }
    }
}

免责声明:部分文章信息来源于网络及网友投稿,本网站只负责文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本网站文章和转稿涉及版权等问题,请作者及时联系本站,我们会尽快处理。烛光驿站欢迎捐赠赞赏

权益
版权所有:© 2018 www.sjzphp.cn
网站备案:冀ICP备17012435号-2
联系邮箱:guotaoi@foxmail.com