Supplier 模型定义如下:
<?php
namespace AppModels;
use DcatAdminTraitsHasDateTimeFormatter;
use IlluminateDatabaseEloquentModel;
class Supplier extends Model
{
use HasDateTimeFormatter;
protected $appends = [
'name_type',
];
public function getNameTypeAttribute()
{
return $this->name . '(' . self::$typeMap[$this->type] . ')';
}
}
在模型中追加了一个 name_type 属性,然后即使在查询方法指定了要查询的列,返回的结果仍然带有追加的属性,比如:
public function suppliers(Request $request)
{
return AppModelsSupplier::get(['id','name as text']);
}
显示的结果如下,同时因为指定的列里面,没获取type,在显示追加的 name_type 属性时,还会报错。
[
{"id":1,"text":"u4e2au4eba","name_type":""},
{"id":2,"text":"u7f8eu7684u5b98u65b9u65d7u8230u5e97","name_type":""},
{"id":3,"text":"GREEu683cu529bu5b98u65b9u65d7u8230u5e97","name_type":""}
]
这是因为追加的属性已经默认包含在查询结果中了,如果我们不想在查询结果中包含追加属性,可以使用makeHidden
方法。
public function suppliers(Request $request)
{
return AppModelsSupplier::makeHidden('name_type')->get(['id','name as text']);
}
这样就可以在查询结果中屏蔽追加的属性了,最终结果如下:
[
{"id":1,"text":"u4e2au4eba"},
{"id":2,"text":"u7f8eu7684u5b98u65b9u65d7u8230u5e97"},
{"id":3,"text":"GREEu683cu529bu5b98u65b9u65d7u8230u5e97"}
]
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel 查询方法指定字段后仍然显示追加字段的解决方法
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel 查询方法指定字段后仍然显示追加字段的解决方法