如何将laravel模型工厂创建方法返回的对象转换为包含模型字段的数组?
例如,我有一个如何将laravel模型工厂创建方法返回的对象转换为包含模型字段的数组?,laravel,eloquent,laravel-6.2,laravel-factory,Laravel,Eloquent,Laravel 6.2,Laravel Factory,例如,我有一个UserFactory.php 尝试向模型类中添加类似的内容: public function getArr(){ foreach($this->attributes as $key => $val){ $array[$key] = $val; } return $array; } 如果您希望在每个模型中都使用此函数,您可以使用此函数创建trait,然后将其附加到模型类或扩展它的任何类中。
UserFactory.php
尝试向模型类中添加类似的内容:
public function getArr(){
foreach($this->attributes as $key => $val){
$array[$key] = $val;
}
return $array;
}
如果您希望在每个模型中都使用此函数,您可以使用此函数创建trait,然后将其附加到模型类或扩展它的任何类中。尝试向模型类添加类似的内容:
public function getArr(){
foreach($this->attributes as $key => $val){
$array[$key] = $val;
}
return $array;
}
如果您希望在每个模型中都使用此函数,您可以使用此函数创建trait,然后将其附加到模型类或扩展它的任何类中。您应该尝试使用factory的原始方法,而不是创建
$user = factory(User::class)->raw();
这将为您提供一个可以使用的数组。您应该尝试使用factory的原始方法,而不是创建
$user = factory(User::class)->raw();
这将为您提供一个可以使用的数组。您可以使用json\u decode
// Laravel 7
$userArray = json_decode(factory(User::class)->create(), true);
// Laravel 8
$userArray = json_decode(User::factory()->create(), true);
您可以使用json\u decode
// Laravel 7
$userArray = json_decode(factory(User::class)->create(), true);
// Laravel 8
$userArray = json_decode(User::factory()->create(), true);
谢谢你的回答。但这是最好的方法吗?使用循环是否有效?我的意思是在User
model或任何laravel的helper函数中没有任何神奇的方法吗?嗯,你是对的。您只需在函数中返回具有相同效果的$this->attributes
?我以前用dd($user)
检查过。我可能还没有看到一个属性。我现在无法尝试。我很快会查出来的。Atributes属性受保护,这意味着你不能在类外访问它们,因此你需要使用公共函数来为你获取它们。否。如果将上述函数添加到模型类中,则可以执行$array=$user->getArr()代码>谢谢你的回答。但这是最好的方法吗?使用循环是否有效?我的意思是在User
model或任何laravel的helper函数中没有任何神奇的方法吗?嗯,你是对的。您只需在函数中返回具有相同效果的$this->attributes
?我以前用dd($user)
检查过。我可能还没有看到一个属性。我现在无法尝试。我很快会查出来的。Atributes属性受保护,这意味着你不能在类外访问它们,因此你需要使用公共函数来为你获取它们。否。如果将上述函数添加到模型类中,则可以执行$array=$user->getArr()代码>