thinkphp5 编辑时 唯一验证 解决办法
若定义了相关的验证规则,如:
namespace app\seller\validate;
use think\Validate;
class Goodsmtag extends Validate
{
protected $rule = [
'name' => 'require|max:25|unique:goodsmtag',
'sort' => 'require|number|unique:goodsmtag',
'pic' => 'require',
];
protected $message = [
'name.require' => '类别名称必须填写',
'name.max' => '类别名称长度不得大于25位',
'name.unique' => '类别名称不得重复',
'sort.require' => '排序数字必须填写',
'sort.number' => '排序必须为数字',
'sort.unique' => '排序数字不得重复',
'img.require' => '必须上传图片',
];
protected $scene = [
'add' => [
'name'=>'require|max:25|unique:goodsmtag',
'sort'=>'require|number|unique:goodsmtag',
'img'=>'require',
],
'edit' => [
'name'=>'require|max:25|unique:goodsmtag',
'sort'=>'require|number|unique:goodsmtag',
],
];
}
在添加界面验证的时候,提交自身的数据验证正常。
然而在编辑修改的页面验证时,提交自身数据会提示数据重复。
解决方法:
在编辑页面表单把主键id也作为数据传入到验证器中(name要和主键同名)。如:
public function editOne($id){
$data = [
'name' => input('name'),
'isshow' => $_POST['isshow'],
'create_time' => time(),
'sort' => input('sort'),
'id' => input('id')
];
$file = request()->file('pic');
if($file){
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if($info){
$img_src = '/uploads/'.$info->getSaveName();
$img_src = str_replace('\\','/',$img_src);
$data['img'] = $img_src;
}
}else{
$old = $this->getOneById($id);
$data['img'] = $old['img'];
}
$validate = \think\Loader::validate('Goodsmtag');
if(!$validate->scene('edit')->check($data)){
return $validate->getError();
}else{
$res = db("goodsmtag")->where("id=$id")->update($data);
if($res)
return true;
else
return false;
}
}
原文地址:https://segmentfault.com/a/1190000016697061
thinkphp5 编辑时 唯一验证 解决办法的更多相关文章
- Android权限管理之Android 6.0运行时权限及解决办法
前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以 ...
- PHP编译安装时常见错误解决办法,php编译常见错误
PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...
- excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法
excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法 office2007应该遇到“向程序发送命令时出现 问题”,设置为以管理员运行也不好用,重装office也不好用,下面介绍下 ...
- Win7安装Oracle Instantclient ODBC驱动 后配置DSN时出错的解决办法 SQORAS32
安装过程简述 oracle官网下载了 instantclient-odbc-nt--.zip instantclient-basic-nt-.zip 我这是32位版的win7,按照需要下载对应的版本. ...
- 关于.Net Core 前后端分离跨域请求时 ajax并发请求导致部分无法通过验证解决办法。
项目中有这样一个页面.页面加载的时候会同时并发6个ajax请求去后端请求下拉框. 这样会导致每次都有1~2个“浏览器预请求”不通过. 浏览器为什么会自动发送“预请求”?请看以面连接 https://b ...
- Linux使用curl 方式安装docker-compose 后执行docker-compose version 检查安装是否成功时出错的解决办法
0x0.缘起: 今天在一台新的Fedora 25上按照官方文档,使用curl方式安装 docker-compose后,验证是否安装成功时出错: 安装时使用的命令为; curl -L https://g ...
- Xcode 6.3.2 提交APP(Upload Archive)时崩溃的解决办法
最近在上传为客户做的APP时,发现Xcode总会在进行到Upload Archive这一步时崩溃,导致APP上载不了.下面说说网上搜索到的几种解决办法. 方法一 亲测有效,很简单: 1.重新打开Xco ...
- access数据库select查询top时无效的解决办法
access数据库select查询top时有时无效,原因就是在使用Order by时,且排序的条件中数据有重复的. 比如:select top 10 * from table1 order by cd ...
- mysql ERROR 1045 和2058时(28000): 错误解决办法
mysql ERROR 1045 (28000): 错误解决办法 听语音 | 浏览:54286 | 更新:2018-02-23 14:34 | 标签:mysql 1 2 3 4 5 6 7 分步阅读 ...
随机推荐
- Eclipse中使用GIT提交文件至本地
GIT提交文件至本地: 1. 右击项目——Team——Commit…: 2.在弹出的Commit Changes框中——选择要提交的文件——填写提交说明——点击Commit,即可提交至本地.
- 51nod 1113 矩阵快速幂( 矩阵快速幂经典模板 )
1113 矩阵快速幂 链接:传送门 思路:经典矩阵快速幂,模板题,经典矩阵快速幂模板. /******************************************************* ...
- C文件I/O超详细教程
本文主要参考了C Primer Plus (5th & 6th Edition) 您可以选择本文的部分内容来读,有些内容对于不熟悉MS-DOS的读者可能过于晦涩难懂. C语言文件基本知识 文件 ...
- UVA1584-Circular Sequence(紫书例题3.6)
Some DNA sequences exist in circular forms as in the following gure, which shows a circular sequence ...
- linux rar 解压忽略带密码压缩包
#解压忽略密码 rar x -p- file.rar #解压忽略子目录 rar x -ep file.rar
- Ubuntu下安装curl和corn
Ubuntu下安装curl sudo apt install curl Ubuntu下安装cron apt-get install cron
- unity 获取UGUI中的Text字的坐标
using System.Collections; using UnityEngine; using UnityEngine.UI; public class TextMoveHelper : Mon ...
- dockerfile centos+jdk+时区设置
1.参考博客:https://blog.csdn.net/yjk13703623757/article/details/68944549 2.dockerfile如下 # Base os image ...
- 洛谷 P1825 [USACO11OPEN]玉米田迷宫Corn Maze
P1825 [USACO11OPEN]玉米田迷宫Corn Maze 题目描述 This past fall, Farmer John took the cows to visit a corn maz ...
- 10.2.0.4 to 10.2.0.5 Installation of Patch Set Release (Windows)
环境:10.2.0.4集群数据库zlm10g(双节点,zlm10g1,zlm10g2) 系统:Windows 2003 Server 64Bit 内存:2G RAM 存储:ASM 目标:把集群数据库从 ...