Laravel 不经常用到,但很实用的功能集合汇总

一、定义一个访问器

get名字驼峰式Attribute
例如:getStatusNameAttribute对应的是status_name,如果是获取的时候,获取自动调用这个访问器,如果你没有获取是不会调用的,数组是不会自动显示,我们需要在数组的时候显示出来,这个时候就需要主动显示

在类型里面附加进去,主动显示

protected $appends = ['check_status_name'];
public function getCheckStatusNameAttribute()
    {
        $staus=[
            1=>'审核通过',
            0=>'审核失败',
            2=>'等待审核'
        ];
        return $staus[$this->check_status];
    }

演示结果不带附加测试

Array
(
    [id] => 3
    [sort] => 0
    [next_ratio] => 0
    [origin_password] => 123456
    [password] => $2y$10$eDfojSSpu.pIdmbGYtNMseprIegJj.lojfV9FFkYZn94PGXjiImzK
    [name] => 空气工作室
    [ip] => 127.0.0.1
    [host] => www.kong-qi.com
    [app_key] => 20181230xxx
    [token] => Uj4NdinacVQxxx
    [draw_type] => 2
    [min_money] => 4444
    [realname] => 空气
    [idcard] => 
    [address] => gddddg
    [email] => kq@qq.com
    [mobile] => 1310454614
    [ratio] => 12
    [qq] => 531833998
    [is_proxy] => 1
    [from_id] => 0
    [is_checked] => 1
    [login_status] => 1
    [last_number] => 4
    [login_ip] => 127.0.0.1
    [last_time] => 2019-01-28 23:23:41
    [remember_token] => 9zpfmAYrltvkRAhGo2h8HCkOxNxIAdNhpsjYRXdpnAuo2lLDUemAcAWNv5UF
    [check_status] => 1
    [check_at] => 
    [created_at] => 2018-12-30 14:25:15
    [updated_at] => 2019-01-28 23:23:41
    [deleted_at] => 
)

数组并没有显示出来,好了附加上去看看

Array
(
    [id] => 3
    [sort] => 0
    [next_ratio] => 0
    [origin_password] => 123456
    [password] => $2y$10$eDfojSSpu.pIdmbGYtNMseprIegJj.lojfV9FFkYZn94PGXjiImzK
    [name] => 空气工作室
    [ip] => 127.0.0.1
    [host] => www.kong-qi.com
    [app_key] => 20181230144141yOSwgi
    [token] => Uj4NdinacVQWU3mXjkRM1sNdbDH0DFPH
    [draw_type] => 2
    [min_money] => 4444
    [realname] => 空气
    [idcard] => 
    [address] => gddddg
    [email] => kq@qq.com
    [mobile] => 1310454614
    [ratio] => 12
    [qq] => 531833998
    [is_proxy] => 1
    [from_id] => 0
    [is_checked] => 1
    [login_status] => 1
    [last_number] => 4
    [login_ip] => 127.0.0.1
    [last_time] => 2019-01-28 23:23:41
    [remember_token] => 9zpfmAYrltvkRAhGo2h8HCkOxNxIAdNhpsjYRXdpnAuo2lLDUemAcAWNv5UF
    [check_status] => 1
    [check_at] => 
    [created_at] => 2018-12-30 14:25:15
    [updated_at] => 2019-01-28 23:23:41
    [deleted_at] => 
    [check_status_name] => 审核通过
)

有了,就可以调用他了。

运行时追加

return $user->append('is_admin')->toArray();

return $user->setAppends(['is_admin'])->toArray();

在自己的model下

二、隐藏字段信息

比如我的密码不能够在查询的时候显示出来

protected $hidden = ['password'];

允许显示的

 protected $visible = ['first_name', 'last_name'];

这里只能设置一个,不能同时,否则只会执行 $visible

临时暴露隐藏属性makeVisible('password')

 $merchant=Merchant::first()->makeVisible('password')->toArray();
       print_r($merchant);

临时隐藏属性makeHidden('password')

$merchant=Merchant::first()->makeHidden('password')->toArray();
       print_r($merchant);

三、修改时间格式

比如我想要更改created_at更改格式

 protected $casts = [
        'created_at' => 'date:Y-m-d',
        'joined_at' => 'datetime:Y-m-d H:00',
    ];

比如我想要更改created_at更改格式

 protected $casts = [
        'created_at' => 'date:Y-m-d',
        'joined_at' => 'datetime:Y-m-d H:00',
    ];

提示

评论区 (0)

没有记录
支持 markdown,图片截图粘贴拖拽都可以自动上传。
黑白课堂

黑白课堂

混元大罗金仙 站长创业者玉树凌风每天醒来0收入

查看更多

最新视频课程

Laravel 的 PhpSpreadsheet 包入门

wap2App 入门讲解,100%速成,全面为你讲解。

ace.js 打造一款属于你的 Web 编辑器,入门文档。

Laravel Permission 中文文档

解释 OAuth 2.0 认证 和使用场景说明

Laravel 之 horizon 队列管理界面系统

钻级赞助商