让我们考虑爱因斯坦之谜和这两个模型:
class Pet extends Eloquent
{
public function pet()
{
return hasOne(Man::class)
}
}
class Man extends Eloquent
{
public function pet()
{
return belongsTo(Pet::class)
}
}
如果我想得到所有宠物:
Pet::all()->toArray();
我会举个例子:
{
id: 2,
man: {
nationality: "German",
pet_id: 2
}
name: "Fish"
}
在这种情况下,pet_id
列是无关紧要的,我想将其隐藏。怎么样?
答案 0 :(得分:1)
使用Eloquent API Resources获取模型的数组版本。从长远来看,这比依赖于无法配置的模型的toArray方法更为灵活。
如果您仍然想使用toArray
,则可以在每个相应模型中简单地将不应包含的属性添加到名为$hidden
的受保护成员变量中(请参阅有关serialization of Eloquent models的文档)。
答案 1 :(得分:1)
class Pet extends Eloquent
{
public function pet()
{
return hasOne(Man::class)->select('nationality');
}
}