thinkphp 自动验证通过但是进不去create()找不到原因
怪我咯
怪我咯 2017-04-11 09:09:18
0
1
388

模型自动验证已经通过但是到了create这里就被拦截了

控制器代码:
p()是自己写的打印函数

public function setweb(){ // 提交保存 if(IS_POST){//提交判定 // 调用保存方法 $result = $this->config->store(I('post.')); p($result); } $data = $this->config->where("config_id = 1")->getField('web'); $data = json_decode($data,true); p($data); // 分配数据 $this->assign('data',$data); // 载入页面 $this->display(); }

模型代码:

class ConfigModel extends BaseModel{ // 指定主键 protected $pk = 'config_id'; // 指定表 protected $tableName = 'config'; // 自动验证---------------------------------------------------------------自动验证 protected $_validate = [ ['webname','require','网站名称不能为空!'], // ['number','require','备案号不能为空!'], // ['intro','require','网站描述不能为空!'] ]; // 方法开始*******************************************************方法开始 //添加配置项 public function store($post){ if($this->create()){ $data['config_id'] = 1; $data['web'] = json_encode($post); p($data); $action = isset($data[$this->pk])?"save" :"add"; // p($data);die; $result =$this->$action($data); return ['status' => 'success' , 'data' =>$result ,'message' => '1' ]; } return ['status' => 'fault' ,'message' => $this->getError()]; } }

在表单中 如果不填webname 会提示网站名称不能为空! 填上webname 什么也不显示 就是过不了create()
最开始因为开启令牌,一直提示令牌错误,后来我吧令牌配置关了就这样了 找了好长时间,求大神指点

怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous (1)
黄舟

问题可以算是解决了 我觉得这个方法不完美 希望哪路大神给我店思路
我在网上看到些答案 说是: create()有bug 但不我这么认为,绝对是有哪些问题我忽律了
我找到的解决方法:
1.数据库的表不是utf-8 可能会出现这种情况
2.和表里的字段不一样
3.create()函数有bug 应用 === false 进行判断 确保通过create(); 我用的是这种用,但这种解决方法不完美,治标不治本.

//添加配置项 public function stores($post){ if($this->create() === false){//验证判断 return ['status' => 'fault' ,'message' => $this->getError()];//如果没通过 }else{//通过 $data['config_id'] = 1;//给id是为了走保存方法 $data['web'] = json_encode($post);//存成json格式,有利于扩展字段而不用添加表字段 // 动作 $action = isset($data[$this->pk])?"save" :"add";//动作判断 $result =$this->$action($data); // 成功返回内容 return ['status' => 'success' , 'data' =>$result ,'message' => '添加成功' ]; } }
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!