【发布时间】:2020-10-03 22:34:19
【问题描述】:
我有一个带有自定义属性的用户模型,
属性name 连接firstName 和lastName:
class User extends Authenticatable
{
/**
* @var array
*/
protected $fillable = ['firstName', 'lastName'];
protected $appends = [
'name'
];
public function getNameAttribute(){
return $this->attributes['firstName'] . ' ' . $this->attributes['lastName'];
}
}
我也与Group 模型有多对多关系。
问题是,当我尝试播种时:
factory(App\Group::class, 30)
->create()
->each(function ($group) {
$group->users()->createMany(factory(App\User::class, 3)->make()->toArray());
});
我得到异常:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'field list'
我的工厂:
$factory->define(User::class, function (Faker $faker) {
return [
'firstName' => $faker->firstName,
'lastName' => $faker->lastName,
];
});
当我评论name 属性时,它工作正常。
谢谢。
【问题讨论】:
-
请分享您的 UserFactory
-
你试过把'name'放到
$fillable吗? -
他不能将'name'放入可填充中,没有真正的名为'name'的列@Wiguna R
-
对。我的错我真的不知道
$appends是什么。我用我的母语阅读了一些文章,说如果 Accessor 方法必须是 camelCase 并且$appends属性必须是蛇形大小写,这就是 OP 所做的。 source -
您好,我已添加
UserFactory
标签: laravel eloquent model laravel-seeding