Я получаю эту ошибку (Fatal error: Class 'CModelEvent не найден), когда я пытаюсь сохранить модель без использования формы сообщения, но напрямую получаю данные из файла excel и присваиваю ему атрибуты модели, как указано ниже:
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']
это дает ошибку.