答案对人有帮助,有参考价值 0 答案没帮助,是错误的答案,答非所问
可以隐藏Model查询后结果toArray()后的任意内容,基本用法上面已经有人讲了,我来说点平时用到的稍微高级的用法 1 隐藏某个字段。 2 你可以隐藏查询是通过with方法获取的关系。 3 还可以与$appends连用改变返回数据格式。 如 有一个User表还有一个UserInfo表,查询时需要User的所以字段+UserInfo中的某个字段ClomnX。但是又不希望返回整个UserInfo的信息。(当然可以用简单点的方式在控制器做个查询中处理,我这里只是举个用Model统一处理的方式)
class User extends Model {
protected $hidden = ['userInfo' ];
protected $appedns = ['ClomnX' ]
public function userInfo ()
{
return $this ->hasOne(UserInfo::class);
}
public function getClomnXAttribute ()
{
if (isset ($this ->getRelations()[UserInfo])) {
return $this ->UserInfo->ClomnX;
} else return null ;
}
class TestController
{
$user = user::with('userInfo' )->find($userId);
dump($user->toArray());
}
这只是简单的例子,还可以通过该方法实现更复杂的格式操作。抛砖引玉了。