记录一个Laravel orm访问器不起作用的问题

前言

今天码砖的时候发现laravel orm的访问器在用户前台死活都用不了,但是管理员后台却显示正常,一时间感到很迷乱……

问题原因

经过仔细观察,原来后台是先查询然后再通过手工调用对象属性的方式显示,前台则是查询后直接将结果返回给用户。

翻了下官方手册,orm的访问器并不是在数据库查询的时候起的作用,而是在调用相应的orm对象属性的时候才会生效。

所以,想用访问器的话就不要把查询到的orm对象直接返回给客户了,中间加一层处理就好了。

附加

根据访问器的工作原理可知,假如数据库查询时限制了输出的字段,那么在访问器中被限制输出的字段是没办法用$this->field或$this->attributes[‘field’]来索引的。

记录一个Laravel orm访问器不起作用的问题》有2个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Captcha Code