【发布时间】:2014-07-11 14:00:59
【问题描述】:
每当我尝试保存模型而不使用发布表单但直接从 excel 文件中获取数据并将其分配给模型属性时,我都会收到此错误(致命错误:未找到“CModelEvent”类),如下所示:
public function actionImportFile() {
if (isset($_POST['User'])) {
Yii::import('application.extensions.yii-phpexcel.PHPExcel', true);
$objPHPExcel = PHPExcel_IOFactory::load($_FILES['User']['tmp_name']['import_file']);
$objWorksheet = $objPHPExcel->getActiveSheet();
$model = new User('create');
$model->firstname = $objWorksheet->getCellByColumnAndRow(1, 2)->getValue();
$model->lastname = $objWorksheet->getCellByColumnAndRow(2, 2)->getValue();
$model->password = 'password';
$model->email = 'nt@yahoo.com';
$model->usertype = -1;
$model->status = 1;
if ($model->save())
$this->redirect(array('index'));
}
}
规则定义如下:
public function rules() {
return array(
array('firstname, lastname, email, status, usertype, password', 'required'),
);
}
我认为此错误是由于验证失败,因为当我尝试将模型另存为 $model->save(false) 时,它会保存记录,但我想应用验证规则。
如果有人知道这个错误,请帮助我.....
如果我按以下方式更改上述功能,我发现了另一件事:
public function actionImportFile() {
if (isset($_POST['User'])) {
// Yii::import('application.extensions.yii-phpexcel.PHPExcel', true);
// $objPHPExcel = PHPExcel_IOFactory::load($_FILES['User'] ['tmp_name'['import_file']);
// $objWorksheet = $objPHPExcel->getActiveSheet();
$model = new User('create');
$model->firstname = 'test'; //$objWorksheet->getCellByColumnAndRow(1, 2)->getValue();
$model->lastname = 'test2';//$objWorksheet->getCellByColumnAndRow(2, 2)->getValue();
$model->password = 'password';
$model->email = 'nt@yahoo.com';
$model->usertype = -1;
$model->status = 1;
if ($model->save())
$this->redirect(array('index'));
}
}
然后它保存模型,但上传 $_FILES['User'] ['tmp_name'['import_file'] 这会出错。
【问题讨论】:
-
在保存验证后尝试打印错误:
$model->save(); print_r($model->getErrors()); -
我已经这样做了,但结果相同,现在尝试了 agion 但同样的错误。
-
尝试:
$model->save(); print_r($model->getErrors()); die;因为重定向不打印错误 -
感谢您的回复,但还是同样的错误。
-
我已更新我的问题以查看实际问题但尚未解决。