我正在使用Laravel Framework,我已经通过“ $ php artisan make:auth”命令生成了所有注册和登录信息,现在我在users
表中添加了一个名为“ avatar”的新列,我想要将其设置为“ noimage.jpg”,因此每次我默认注册时都会添加“ noimage.jpg”。
RegisterController
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'username' => $data['username'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'avatar' => 'noimage.jpg' //How it suppose to be?
]);
}
答案 0 :(得分:2)
您还必须将avatar
添加到模型的$fillable
属性中。否则,您无法使用create
进行分配。请参阅Mass Assignment上的文档。
您可以手动分配头像:
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'username' => $data['username'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
$user->avatar = 'noimage.jpg';
return $user;
}
答案 1 :(得分:0)
为模型设置默认值的另一种方法是使用 Laravel生命周期:
const DEFAULT_AVATAR = 'noimage.jpg'
protected static function boot()
{
parent::boot();
static::creating(function (User $user) {
if (!$user->avatar) {
$user->avatar = self::DEFAULT_AVATAR;
}
});
}