mysql> desc tp_company;
+-----------+--------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------------------+----------------+
| id | int(1) | NO | PRI | NULL | auto_increment |
| identity | varchar(128) | NO | MUL | NULL | |
| pidentity | varchar(128) | NO | | | |
| name | varchar(512) | NO | | NULL | |
| address | varchar(512) | NO | | | |
| zipcode | varchar(128) | NO | | | |
| tel | varchar(128) | NO | | | |
| fax | varchar(128) | NO | | | |
| email | varchar(128) | NO | | | |
| url | varchar(128) | NO | | | |
| manager | varchar(128) | NO | | | |
| cdatetime | datetime | NO | | 0000-00-00 00:00:00 | |
+-----------+--------------+------+-----+---------------------+----------------+
自动验证规则
class CompanyModel extends Model {
// 定义自动验证
protected $_validate = array(
array('identity','require','标识必须'),
array('name','require','名字必须'),
);
// 定义自动完成
protected $_auto = array(
array('pidentity','000',1), //添加时 顶级公司标识
array('address','',1), //添加时 空地址
array('zipcode','',1), //添加时 空邮政编码
array('tel','',1), //添加时 空电话
array('fax','',1), //添加时 空传真
array('email','',1), //添加时 空Email
array('url','',1), //添加时 空Url
array('manager','',1), //添加时 空总经理
array('cdatetime','time',1,'function'),
);
}
添加Company记录动作
/*
* 保存添加公司数据
*/
public function doadd(){
if (IS_POST){
$company = D("company"); // 实例化company对象
if ($company->create($_POST)){ // 创建数据对像
$company->add();
$this->ajaxReturn(cjsonreturn(0,L('sys_success'),L('info')),'JSON');
}else {
$this->ajaxReturn(cjsonreturn(1,L('sys_error'),L('error')),'JSON');
}
}else{
$this->ajaxReturn(cjsonreturn(1,L('sys_error'),L('error')),'JSON');
}
}
现在的问题是:
$company = D("company"); 这句执行成功
$company->create($_POST) 这句create一直操作失败
一直找不出原因,打开了所有调试开关,并没有任何SQL错误或其它错误的信息可以分析,请高手指点,谢谢!
如果用以下方式,是可以添加数据成功的
$company = D('company');
$data['identity'] = $_POST['identity'];
$data['name'] = $_POST['name'];
........
$company->add($data);
如果是这样,数据是可以插入到数据库中。但我想用create方法生成(有自动验证)。
最佳答案