【发布时间】:2018-06-19 02:13:26
【问题描述】:
据我了解(如果我错了请纠正我),背包只处理 $fillable 字段。整个 laravel 不就是 $fillable 和 $guarded 之间的分离吗?
MWE:
在User.php中:
class User extends Authenticatable {
protected $guarded = ['password'];
}
在 UserCrudController.php 中:
public function update(UpdateRequest $request)
{
$this->handlePasswordInput($request);
return parent::updateCrud($request);
}
将导致:
SQLSTATE[HY000]: General error: 1364 Field 'password' doesn't have a default value (SQL: insert into `users` (`name`, `email`, `updated_at`, `created_at`)
在对 MySQL 使用“严格”设置时,因为“密码”字段是 $guarded。
是否有任何适当的解决方法来分隔 Backpack 中的 $fillable 和 $guarded 字段?
谢谢。
【问题讨论】:
-
你只能使用一个属性,无论是受保护的还是可填充的,$guarded 代表列入黑名单的字段,$fillable 代表列入白名单的字段。
-
您是否已经检查过用户输入的密码值?
-
是的,之前检查过密码值
标签: php mysql laravel eloquent laravel-backpack