Laravel 5 将自定义(受保护)字段添加到Laravel 5.3 Auth
我正在尝试将自定义字段“角色”添加到Laravel 5.3用户身份验证中。该角色将确定用户是否是其他角色中的管理员,因此,由于身份验证脚手架使用大量可分配属性,因此存在漏洞 因此,我已将我的用户模型更改为:Laravel 5 将自定义(受保护)字段添加到Laravel 5.3 Auth,laravel-5,Laravel 5,我正在尝试将自定义字段“角色”添加到Laravel 5.3用户身份验证中。该角色将确定用户是否是其他角色中的管理员,因此,由于身份验证脚手架使用大量可分配属性,因此存在漏洞 因此,我已将我的用户模型更改为: protected $guarded = [ 'role' ]; RegisterController我已添加自定义字段(默认用户的角色为customer) 我收到以下错误消息: SQLSTATE[HY000]:一般错误:1364字段“角色”没有默认>值(SQL:插入用户(name,e
protected $guarded = [
'role'
];
RegisterController我已添加自定义字段(默认用户的角色为customer)
我收到以下错误消息:
SQLSTATE[HY000]:一般错误:1364字段“角色”没有默认>值(SQL:插入用户(name
,email
,password
,>facebook\u id
,linkedin\u id
,avatar
,token
,updated\u at
)值(姓名,name@domain.co.uk,散列密码,,,>2017-01-20 17:21:162017-01-20 17:21:16)
我这辈子都搞不懂
我在想,也许我不使用大规模可分配输入,但我有一种感觉,那可能会把Auth框架的其余部分搞砸
感谢您的帮助设置默认角色的简单方法是在模型中实际定义它
class User extends Model
{
protected $attributes = [
'role' => 'customer',
];
protected $guarded = [
'role'
];
//...
现在,当您使用create方法并且没有传递'role'
属性时,insert将在迁移中为添加角色字段的users表使用值'customer'
,您需要将该字段设置为可空,或者为其提供一个默认值,以便在不使用该字段的情况下批量分配时,数据库k现在该如何处理这个领域
Schema::table('users' function(Blueprint $table){
$table->string('role')->default('customer');
});
或
如果您的代码可以处理空角色值。好的,谢谢,我理解这是如何工作的,但我仍然有点困惑,为什么我的初始方法会失败。!干杯整个问题是您不能通过create(['role'=>foo')
Schema::table('users' function(Blueprint $table){
$table->string('role')->default('customer');
});
Schema::table('users' function(Blueprint $table){
$table->string('role')->nullable();
});