表单验证

model-form使用Laravel的验证规则来验证表单提交的数据:

  1. $form->text('title')->rules('required|min:3');
  2. // 复杂的验证规则可以在回调里面实现
  3. $form->text('title')->rules(function ($form) {
  4. // 如果不是编辑状态,则添加字段唯一验证
  5. if (!$id = $form->model()->id) {
  6. return 'unique:users,email_address';
  7. }
  8. });

也可以给验证规则自定义错误提示消息:

  1. $form->text('code')->rules('required|regex:/^\d+$/|min:10', [
  2. 'regex' => 'code必须全部为数字',
  3. 'min' => 'code不能少于10个字符',
  4. ]);

如果要允许字段为空,首先要在数据库的表里面对该字段设置为NULL,然后

  1. $form->text('title')->rules('nullable');

更多规则请参考Validation.

创建页面规则

只在创建表单提交时生效

  1. $form->text('title')->creationRules('required|min:3');

更新页面规则

只在更新表单提交时生效

  1. $form->text('title')->updateRules('required|min:3');

数据库unique检查

一个比较常见的场景是提交表单是检查数据是否已经存在,可以使用下面的方式:

  1. $form->text('username')
  2. ->creationRules(['required', "unique:user_table"])
  3. ->updateRules(['required', "unique:user_table,username,{{id}}"]);