[踩坑]laravel 获取一个model查询结果中不存在的属性返回NULL
问题描述:我查询到了一个结果集,我要从结果集获取一个属性,例如user_id,事实是这个结果集中不存在user_id这个属性,但是并没有报错,而是返回了null,导致我调用接口的时候没发现这个问题,bug就这样产生查询结果($res)如下
:获取$res->aaaa (aaaa属性是不存在的),却返回了null !!!!
why?????都不报错的么!!!!
找了找 找了找 找了找
哦 原来是这样在Medel.php文件中有这样一个魔术方法:__get
魔术方法__get中又调用了这个方法
根据一步步打印发现,这个方法中调用了$this->getRelationValue($key)这个方法
然而 继续看 继续看 继续看
一步步打印,发现这个方法中的if,对于传过来的aaaa
这个key全都不满足,sososo~
这个方法什么都没有返回,因此这是一个空方法,调用一个空方法的结果就是返回了null
就这样吧 ,我去恢复数据了,拜~
本作品采用《CC 协议》,转载必须注明作者和本文链接