帮助我理解:
报名表格。它具有标准字段(登录名、密码)。
在用户表中:
id name password role
添加到 $fillable
name password role
我将表单中的数据发送到validator(),然后再发送到create()。
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'alpha_dash', 'string', 'min:4', 'max:18', 'unique:users'],
'password' => ['required', 'string', 'min:4', 'max:18'],
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'password' => Hash::make($data['password']),
'role' => 1,
]);
}
在这种情况下,用户是否可以更改数据并将任何值写入角色?(因为我在 $fillable 中添加了角色,并且该字段可用于批量填充)。
还是用默认值做数据库中的角色,并从$fillable和create()中删除更好?
用户如何变化?您正在传递一个硬编码的值。
$fillable
仅给出在调用方法save()
时create()
,,update()
(和其他类似的)只有那些指定的字段可以更改(例如,id
不能以任何借口更改字段,或者您有另一个逻辑,该字段必须是严格静态的)。一旦你开始接受一个请求,你才需要检查你收到的内容和从哪里收到的,直到那一刻,没有理由担心(同样,如果你不给每个人对你的代码的权利,但是在这个如果这是您面临的最小问题)。
这个很危险:
数据库默认选项是合适的,但可能不方便。而且,迟早你仍然会转移不仅是第一个角色。