我有以下遷移: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然後它顯示提交時的表單錯誤。
因此,無論驗證規則如何,遷移文件中的哪項工作都令人困惑,甚至在遷移表中提及的都不起作用。