我有以下迁移:laravel:vaidation VS迁移模式规则
Schema::create('ingredients', function (Blueprint $table) {
$table->increments('id');
$table->string('name',10)->unique()->nullable(false);
$table->timestamps();
});
如果你注意到我希望字符串不超过10个字符
在我的控制,我有:
$this->validate($request, [
'name' => 'bail|required|unique:ingredients|max:200',
]);
在控制器我提到的最大字符为200.
所以当我填充表单中包含超过10个字符且少于200个字符的表单存储在数据库中。这怎么可能。
将laravel不检查然后迁移文件架构规则和验证规则之间的完整性。
另外我注意到的是:如果我从控制器中删除验证规则并提交表单,仍然不检查字符数w.r.t 10.它创建一个新的数据库记录。即使我不使用任何验证规则,它也会检查唯一记录。
为什么检查独特性会被检查,而不考虑验证规则中的提及。
此外,迁移文件中的最大字符数(10)没有意义。因为有或没有验证规则,我可以输入超过10个字符的名称。
在哪里好像我有我的验证规则说max:2然后它显示提交时的表单错误。
因此,无论验证规则如何,迁移文件中的哪项工作都令人困惑,甚至在迁移表中提及的都不起作用。