为什么thinkphp 自动验证不起作用
建立的zsh_order数据表,
首先OrderController
//过滤四张图片地址之间的空白符号
public function filter($str){
$str = str_replace(",",",",$str);
$str = str_replace(array("\r\n","\n","\r",'"','"',','),"",$str);
return $str;
}
//基本信息填写
public function add(){
if(IS_POST){
$order=D('order');
$message['cname']=I('cname');
$message['license']=I('license');
$message['bankinfo']=I('bankinfo');
$message['bankaccount']=I('bankaccount');
$message['uname']=I('uname');
$message['weixin']=I('weixin');
$message['email']=I('email');
$message['phone']=I('phone');
$message['o_uid']=$_SESSION['uid'];
$message['ctime']=time();
if($_FILES['pic0']['tmp_name']!='' ||
$_FILES['pic1']|| ['tmp_name']!=''||$_FILES['pic2']
['tmp_name']!='' || $_FILES['pic3']['tmp_name']!=''){
$upload=new \Think\Upload();
$upload->maxSize = 3145728;
$upload->exts=array('jpg','gif','png','jpeg');
$upload->savePath='./Public/Uploads/';
$upload->rootPath='./';
$info = $upload->upload();
if(!$info){
$this->error($upload->getError());
}else{
$res2 = array();
foreach($info as $k=>$v){
//$this->filter过滤
$data['pic']= $this->filter($v['savepath'].$v['savename']);
array_push($res2, $data);
}
$message['pic0']=$res2[0]['pic'];
$message['pic1']=$res2[1]['pic'];
$message['pic2']=$res2[2]['pic'];
$message['pic3']=$res2[3]['pic'];
}
if($_POST['check']==''){
$this->error('您还没有勾选[以上信息我已阅读并确认]',U('order/index'));
}else if($order->create($message)){
if($order->add()){
$this->success('添加数据成功',U('risk/index'));
}else{
$this->error('添加数据失败!',U('order/index'));
}
}else{
$this->error($order->getError());
}
return;
}
}
}
然后是Ordermodel的自动验证
最后是view页面
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
1、控制器代码请贴全
2、这缩进逼死强迫症
现有的代码片段里可以看到的错误,不应该用M('order'),应该用D('order'),前者实例化的时model类,后者实例化的才是orderModel类
楼上说的没错,自动验证,要用D函数,仔细看文档,可以先仿照文档上来