在控制器的form方法中创建表单,如果使用了 if( $form->isCreating() ){ 表单,验证 } ,表单验证不起作用

  1. 运行环境

windows
1). 当前使用的 Laravel 版本?

Laravel Framework 7.30.6
2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.4
3). 当前系统

Windows 11
4). 业务环境

开发环境

  1. 问题描述?
    在控制器的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()
表单验证就有效。

附言 1  ·  2年前

if($form->isCreating ()){
//在这里不可以写验证,
//忽略提交字段
//不可以写表单回调
}

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 2

laravel admin 还是 Dcat admin ? 看文档 表单验证《Dcat Admin 中文文档》

2年前 评论
wangjianjian (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!