更新 Laravel 中的不可填写字段?
Update non fillable field in Laravel?
我想从旧数据库导入数据,所以我想填写一些字段,例如password
。 User
模型如下所示:
class User extends Authenticatable
{
protected $fillable = [
'name', 'email', 'password', 'disabled_at'
];
}
在我的迁移中我有:
class ThumbnailSeeder extends Seeder
{
public function run()
{
foreach(User::all() as $user) {
$user->password = get_old_password($user->id);
$user->save();
}
}
}
显然这行不通,因为 Laravel 认为我在做批量作业...
我应该更改什么才能使其正常工作?
我看过其他类似的问题,例如 一个,但我仍然不知道如何绕过 Laravel 保护。
您可以尝试使用 forceFill
。
foreach(User::all() as $user) {
$user->forceFill(array('password ' => get_old_password($user->id));
$user->save(); //Not sure if this is necessary
}
这是未经测试的代码。
正如我在评论中所建议的;
我觉得你做的事情更像是
foreach(User::all() as $user) {
$user->password = User::find($user->id)->password;
$user->save();
}
这不会改变任何东西。
我想从旧数据库导入数据,所以我想填写一些字段,例如password
。 User
模型如下所示:
class User extends Authenticatable
{
protected $fillable = [
'name', 'email', 'password', 'disabled_at'
];
}
在我的迁移中我有:
class ThumbnailSeeder extends Seeder
{
public function run()
{
foreach(User::all() as $user) {
$user->password = get_old_password($user->id);
$user->save();
}
}
}
显然这行不通,因为 Laravel 认为我在做批量作业...
我应该更改什么才能使其正常工作?
我看过其他类似的问题,例如
您可以尝试使用 forceFill
。
foreach(User::all() as $user) {
$user->forceFill(array('password ' => get_old_password($user->id));
$user->save(); //Not sure if this is necessary
}
这是未经测试的代码。
正如我在评论中所建议的; 我觉得你做的事情更像是
foreach(User::all() as $user) {
$user->password = User::find($user->id)->password;
$user->save();
}
这不会改变任何东西。