我有示例模型来自
$model = Model::find(1);
字符串例如,这个示例总是返回这些属性(有些来自$append):
-id -name -countRelation -description -created_at -updated_at
型我只想从这个示例中获取name和description;makeVisible只用于显示隐藏属性;我不想使用makeHidden,因为如果在模型上添加新的append属性,查找的结果可能会改变;
name
description
pzfprimi1#
由于您要附加访问器,因此限制SELECT语句不会阻止将这些访问器附加到序列化输出。您可以使用setVisible来执行此操作:
setVisible
$model->setVisible(['name', 'description']);
字符串以这种方式设置可见内容将限制在Model的序列化输出中返回的属性、追加和关系。
eivgtgni2#
您可以使用select只检索数据库中的某些列,它不会影响append,请参阅文档了解更多信息Eloquent
select
append
Eloquent
$model = Model::find(1); // to this $model = Model::select('name', 'description')->find(1);
字符串请参阅Query Builder以了解有关从数据库获取数据的更多信息。
Query Builder
vzgqcmou3#
如果只检索name和description,则可以使用
$model = Model::select(['name', 'description'])->find(1);
字符串
s2j5cfk04#
可以使用select()在查询中只选择某些列。
select()
$model = Model::select('name', 'description')->find(1);
字符串https://laravel.com/docs/8.x/queries#specifying-a-select-clause您还可以获取模型并在模型上使用函数。如果你有一个模型,你可以使用get()。
get()
$model = Model::find(1)->get('name', 'description');
型如果你有一个集合,你可以使用->map->only()。这将唯一的函数Map为Collection中每个Model的回调。
->map->only()
$models = $models->map->only(['name', 'description']);
型
14ifxucb5#
我发现**makeVisible(array $column)**更适合我。
$model->makeVisible(['wallet']);
5条答案
按热度按时间pzfprimi1#
由于您要附加访问器,因此限制SELECT语句不会阻止将这些访问器附加到序列化输出。您可以使用
setVisible
来执行此操作:字符串
以这种方式设置可见内容将限制在Model的序列化输出中返回的属性、追加和关系。
eivgtgni2#
您可以使用
select
只检索数据库中的某些列,它不会影响append
,请参阅文档了解更多信息Eloquent
字符串
请参阅
Query Builder
以了解有关从数据库获取数据的更多信息。vzgqcmou3#
如果只检索name和description,则可以使用
字符串
s2j5cfk04#
可以使用
select()
在查询中只选择某些列。字符串
https://laravel.com/docs/8.x/queries#specifying-a-select-clause
您还可以获取模型并在模型上使用函数。如果你有一个模型,你可以使用
get()
。型
如果你有一个集合,你可以使用
->map->only()
。这将唯一的函数Map为Collection中每个Model的回调。型
14ifxucb5#
我发现**makeVisible(array $column)**更适合我。
字符串