Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >yii2种ajax提交数据时校验出问题

yii2种ajax提交数据时校验出问题

作者头像
botkenni
发布于 2019-09-02 09:43:21
发布于 2019-09-02 09:43:21
56500
代码可运行
举报
文章被收录于专栏:IT码农IT码农
运行总次数:0
代码可运行

工作中的一些细节问题:

记一次yii2种ajax提交数据时校验出问题,直接跳过addError,报错语不现实‘不存在!’

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$this->addError('customer_id', '不存在!');
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function rules()
{
    return [
        [['customer_id'], 'integer'],
        [['customer_id'], 'required'],
        ['customer_id', 'validateCustomerId'],
    ];
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public function validateCustomerId()
    {
        $this->addError('customer_id', '客户公海不存在!');

//        $dataStr = date('Y-m-d', time());
//        $startTime = strtotime($dataStr);
//        $endTime = strtotime($dataStr) + 86400;
//        /** @var Administrator $administrator */
//        $administrator = \Yii::$app->user->identity;
//        $this->customer = CrmCustomer::findOne($this->customer_id);
//        if(null == $this->customer)
//        {
//            $this->addError('customer_id', '客户不存在');
//        }
//        /** @var CustomerPublic $customerPublic */
//        $customerPublic = $this->customer->customerPublic;
//        if(null == $customerPublic)
//        {
//            $this->addError('customer_id', '客户公海不存在!');
//        }
//
//        if(null == $administrator->department || !$administrator->isBelongCompany())
//        {
//            $this->addError('customer_id', '您无权操作!');
//        }
//
//        if($administrator->company_id != $customerPublic->company_id)
//        {
//            $this->addError('customer_id', '此客户您无权提取!');
//        }
//
//        if($this->customer->is_receive && $this->customer->administrator_id > 0)
//        {
//            $this->addError('customer_id', '该客户已经被提取,不能进行该操作');
//        }
//
//        //当前客户对应的客户公海保护的数量
//        if($customerPublic->extract_number_limit > 0)
//        {
//            //判断当前客户对应的客户公海是否有最大提取限制(24小时之内),今天已经提取到客户的数量,利用提取时间大于0,并且部门属于客户公海部门或者是客户公海对应部门的下属部门
//            $count = CrmCustomer::find()
//                ->where(['administrator_id' => $administrator->id])
//                ->andWhere(['>=', 'extract_time', $startTime])
//                ->andWhere(['<=', 'extract_time', $endTime])
//                ->andWhere(['>', 'extract_time', 0])
//                ->andWhere(['company_id' => $customerPublic->company_id])
//                ->count();
//            if($count >= $customerPublic->extract_number_limit)
//            {
//                $this->addError('customer_id', '对不起,今日提取客户数量以达到上限,请耐心等待明日再次提取哦!');
//            }
//        }
    }

原因:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
validateCustomerId()

中的校验有出错的地方,导致addError()不执行

正确的校验应该显示这样的

错误的:

直接跳过第一次遇到的报错,走后面去了

解决:

$this->order后面有遇到需要重复使用到的,就需要return,或者每一个后面加return,低级错误,但是容易犯

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function validateOrderId()
{
    $this->order = Order::findOne($this->order_id);
    if(null == $this->order)
    {
        $this->addError('order_id', '订单不存在。');
        return ;
    }
    if($this->order->isBreakService() || $this->order->isCompleteService())
    {
        $this->addError('order_id', '当前订单状态不能进行该操作。');
    }
}

G

M

T

Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu

AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu

Text-to-speech function is limited to 200 characters

Options : History : Feedback : Donate

Close

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
yii2中ajax页面中a标签js跳转
Text-to-speech function is limited to 200 characters
botkenni
2019/09/02
4.1K0
Yii2 学习笔记之数据库篇
1.简单查询: [[one()]] // 根据查询结果返回查询的第一条记录。 [[all()]] // 根据查询结果返回所有记录。 [[count()]] // 返回记录的数量。 [[sum()]] // 返回指定列的总数。 [[average()]] // 返回指定列的平均值。 [[min()]] // 返回指定列的最小值。 [[max()]] // 返回指定列的最大值。 [[scalar()]] // 返回查询结果的第一行中的第一列的值。 [[column
guanguans
2018/05/09
3.2K0
Yii2 数据操作Query Builder
$rows = (new \yii\db\Query()) ->select(['dyn_id', 'dyn_name']) ->from('zs_dynasty') ->where(['between','dyn_id', 1,30]) ->limit(10) ->all(); print_r($rows);
botkenni
2019/09/02
7930
yii2开发中19条推荐实践
这个是做yii2开发的基石,除非没有办法使用,否则请不要放弃,除了更容易的安装yii2及第三方扩展外,能使用Composer代表着你的服务器最少能运行起来php-cli,那么你就可以使用yii命令行,它会为你的开发带来无尽的遍历。
阿北
2018/06/02
3.3K0
yii2开发中19条推荐实践
使用YII2构建一个定时任务管理后台
创建一个用于测试的方法吧 commands/tasks/TestController.php
botkenni
2019/09/02
1.1K0
使用YII2构建一个定时任务管理后台
Yii2验证器(Validator)用法分析
如上所示,验证器主要使用在rules里面,对当前model里面的属性值进行验证以检查是否满足某种要求。
botkenni
2019/09/03
2.9K0
Yii2验证器(Validator)用法分析
yii2 restful 风格搭建(一)
最近在研究 yii2 如何搭建 restful api,将心得写下,欢迎一起讨论 使用yii2.0.13 advanced 版,将 frontend 整个作为 api 接口项目,除了接口的路由规则可以认证通过外,其他的路由规则都返回请求错误的格式
botkenni
2019/09/02
1.3K0
Yii2用Gii自动生成Module+Model+CRUD
URL:http://localhost/项目目录/backend/index.php/gii
botkenni
2019/09/03
4.6K0
Yii2用Gii自动生成Module+Model+CRUD
ThinkPHP5 按年度水平分表实例
近期网站运营人员、产品反馈:查询数据耗时太长,网站交互上出现明显加载缓慢的情况 分析问题发现:
泥豆芽儿 MT
2022/09/28
8150
ThinkPHP5 按年度水平分表实例
day30_Hibernate学习笔记_02
对象状态 瞬时态|临时态:Transient     1、没有与Hibernate产生关联(没有与Session有关联)。     2、与数据库中的记录没有产生关联,即对象没有ID(有关联:就是与数据库中的ID有对应)。 持久态:Persistent     1、与Hibernate有关联(与session有关联)。     2、对象有ID。 游离态|脱管态:Detached     1、没有与Hibernate产生关联。     2、对象有ID。 三种状态转换如下图所示:
黑泽君
2018/10/11
1.1K0
day30_Hibernate学习笔记_02
【测试SQLite】测试SQLite支持的SQL语句分类
为了全面测试SQLite支持的SQL语句,需要设计一个包含多种类型的表结构,并编写各种SQL语句来测试这些功能。目前按照以下分类进行测试:
SarPro
2024/05/24
3700
【测试SQLite】测试SQLite支持的SQL语句分类
Pandas数据应用:客户流失预测
在当今竞争激烈的商业环境中,客户流失是一个非常关键的问题。无论是电信公司、银行还是电商企业,了解哪些客户可能会流失并采取预防措施都是至关重要的。Pandas 是 Python 中用于数据分析的强大库,它提供了丰富的功能来处理和分析结构化数据。本文将从浅入深介绍如何使用 Pandas 进行客户流失预测,并探讨常见的问题、报错及解决方案。
Jimaks
2025/01/16
1290
phpexcel导入并且有错时标记出文件错位位置
Text-to-speech function is limited to 200 characters
botkenni
2019/09/02
9430
很重要!MySQL的复杂数据类型,学会使用再也不怕复杂场景了、枚举(ENUM)、集合(SET)、JSON、空间数据类型
MySQL数据库作为关系型数据库管理系统(RDBMS)中的佼佼者,提供了多种数据类型以满足不同应用场景的需求。本文将深入探讨MySQL中的枚举类型(ENUM)、集合类型(SET)、JSON类型以及空间数据类型
小白的大数据之旅
2024/11/25
1830
Yii2工作中的一些方法技巧
假设我们当前页面的访问地址是:http://localhost/public/index...
botkenni
2019/09/02
3.3K0
The Clean Architecture in PHP 读书笔记(十)
这是clean architecture的第十篇,也是具体案例的第二篇,本篇会通过使用laravel框架,来开发我们的应用。
zhuanxu
2018/08/23
9770
The Clean Architecture in PHP 读书笔记(十)
yii2使用Migrations为整个数据库表创建迁移
本教程为整个数据库表进行创建迁移,弥补以前未做的工作,且仅适合于Migrations(2.0.8)版本用户及以上。
botkenni
2019/09/02
1.9K0
Yii2 源码分析 - 入口文件执行流程
以 yii 2.0.14 高级版的 frontend 为例,从 frontend/web/index.php 开始
botkenni
2019/09/02
1.2K0
Yii2 源码分析 - 入口文件执行流程
Yii2实现QQ互联登录
Yii2中OAuth扩展及QQ互联登录的方法,实例分析了OAuth扩展的相关配置与QQ互联登陆的实现技巧。
botkenni
2019/09/02
1.2K0
Yii2 学习笔记之 GridView DetailView
在 GridView 小部件是从数据提供者获取数据,并以一个表格的形式呈现数据。表中的每一行代表一个单独的数据项,列表示该项目的属性。 在 DataGrid 小部件中的列是在 yii\grid\Col
guanguans
2018/05/09
2.2K0
相关推荐
yii2中ajax页面中a标签js跳转
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验