在控制器的form方法中创建表单,如果使用了 if( $form->isCreating() ){ 表单,验证 } ,表单验证不起作用
- 运行环境
windows
1). 当前使用的 Laravel 版本?
Laravel Framework 7.30.6
2). 当前使用的 php/php-fpm 版本?
PHP 版本:7.4
3). 当前系统
Windows 11
4). 业务环境
开发环境
- 问题描述?
在控制器的form方法中创建表单,如果使用了 if( $form->isCreating() ){ 表单,验证 } ,表单验证不起作用?
if ($form->isCreating()) {
$form->text(‘phone’, ‘客户电话’)
->placeholder(‘请输入电话’)
->rules([‘required’, ‘regex:/^[1][3,4,5,7,8][0-9]{9}$/‘, “unique:customers,phone,{{id}}”], [
‘required’ => ‘联系电话必填’,
‘regex’ => ‘联系电话格式不正确’,
‘unique’ => ‘联系电话必须唯一’,
]);
}
如果我把判断的条件修改掉,或者把验证放到if的外层,就可以起作用。
我把$form->isCreating() 赋值给一个变量,然后再去判断这个变量,表单验证还是不起作用,什么原因呢?
我查看了一下代码,没有找到原因,谁知道什么原因请解答下,非常谢谢
if (true ) {
$form->text(‘phone’, ‘客户电话’)
->placeholder(‘请输入电话’)
->rules([‘required’, ‘regex:/^[1][3,4,5,7,8][0-9]{9}$/‘, “unique:customers,phone,{{id}}”], [
‘required’ => ‘联系电话必填’,
‘regex’ => ‘联系电话格式不正确’,
‘unique’ => ‘联系电话必须唯一’,
]);
}
只要条件不是$form->isCreating()
或者 $isCreating = $form->isCreating()
表单验证就有效。
if($form->isCreating ()){
//在这里不可以写验证,
//忽略提交字段
//不可以写表单回调
}
推荐文章: