Загрузку и парсинг екселя я написал, на это ума хватило, проблемы начались с записью, вначале я попробовал так сказать метод лома и просто заносил данные в соответствующие поля таблицы, данные появлялись, а товары на сайте нет, я стал искать все возможные зависимости, выставлял их прямо в phpmyadmin и не добился ничего, товара так и нет. Тогда я стиснул извилины и пошел анализировать как жешь все таки добавляет товар сама админка, зашел в меню создания товарной позиции, определил контроллер, метод, параметры, прошел по цепочки наследований метода Create и на последнем этапе спасовал, я просто не понимаю где в этом коде вызывает что-либо, что заносит данные в базу, разными другими методами искал код заносящий в базу и тоже ничего не нашел, прошу подсказать мне по этому приложенному коду как он работает, разъясните пожалуйста.
Код: Выделить всё
public function actionCreate($modelName = null, $parentID = null, $scenario = null)
{
if ($modelName == null)
$modelName = $this->_baseModelName;
$this->actionUpdate(null, $modelName, $parentID, $scenario);
}
/**
* @param null|int $id
* @param null|string $modelName
* @param null|int $parentID
* @param null|string $scenario
* @throws CHttpException
*/
public function actionUpdate($id = null, $modelName = null, $parentID = null, $scenario = null)
{
/**
* @var $parentModel ItexActiveRecord|ItexTreeActiveRecord
*/
$parentModel = null;
if ($id != null)
$this->loadModel($id, $modelName, false, $scenario);
else {
if ($parentID != null && $parentID != 0) {
$this->loadModel($parentID, $modelName, false, $scenario);
$parentModel = $this->_cwm;
}
$this->loadModel(null, $modelName, true, $scenario);
if ($parentID != null && $this->_cwm instanceof ItexTreeActiveRecord)
$this->_cwm->setAttribute('parent_id', $parentID);
}
$isNewRecord = $this->_cwm->isNewRecord;
if ($isNewRecord && (($parentModel != null && !$parentModel->canDoAction('create')) /*|| ($parentModel == null && !$this->_cwm->canDoAction('create'))*/))
throw new CHttpException(403, $this->t('itexcms', 'RECORD_CREATE_ACCESS_DENIED'));
elseif (!$isNewRecord && !$this->_cwm->canDoAction('update'))
throw new CHttpException(403, $this->t('itexcms', 'RECORD_UPDATE_ACCESS_DENIED'));
$modelName = get_class($this->_cwm);
$redirectParams = array();
$redirectParams['modelName'] = $modelName;
if ($this->_cwm instanceof ItexTreeActiveRecord && $this->_cwm->parent_id != 0)
$redirectParams['parentID'] = $this->_cwm->parent_id;
if (Yii::app()->request->isPostRequest && isset($_POST['_reset'])) {
Yii::app()->user->setFlash('info', $isNewRecord ? $this->t('itexcms', 'CREATE_RECORD_CANCEL') : $this->t('itexcms', 'UPDATE_RECORD_CANCEL'));
$this->_cwm->cancel();
if (($page = $this->webUser->getState('itexCmsGridPageForm', 0)) != 0) {
$redirectParams['redirectPage'] = $page;
$this->webUser->setState('itexCmsGridPageForm', null);
}
$this->redirect($this->createUrl('index', $redirectParams));
}
$this->_cwm->withRelated($isNewRecord ? 'create' : 'update');
if (!empty($_POST[$modelName])) {
$this->_cwm->rawData = $_POST;
$this->_cwm->attributes = $_POST[$modelName];
$this->_cwm->setRelatedAttributes($_POST);
$valid = $this->_cwm->validate();
if ($valid) {
$this->_cwm->save(false, null, $parentModel);
if (Yii::app()->getRequest()->isAjaxRequest) {
echo CJavaScript::jsonEncode(array('success' => true, 'attributes' => $this->_cwm->attributes));
Yii::app()->end();
}
Yii::app()->user->setFlash('success', $isNewRecord ? $this->t('itexcms', 'CREATE_RECORD_SUCCESS') : $this->t('itexcms', 'UPDATE_RECORD_SUCCESS'));
if (isset($_POST['_continue'])) {
Yii::app()->user->setState('lastFormButton', '_continue');
$this->redirect($this->createUrl('update', array('id' => $this->_cwm->primaryKey, 'modelName' => $modelName)));
}
if (isset($_POST['_new'])) {
Yii::app()->user->setState('lastFormButton', '_new');
$this->redirect($this->createUrl('create', array_merge(array('modelName' => $modelName), $redirectParams)));
}
if (isset($_POST['_save'])) {
Yii::app()->user->setState('lastFormButton', '_save');
if (($page = $this->webUser->getState('itexCmsGridPageForm', 0)) != 0) {
$redirectParams['redirectPage'] = $page;
$this->webUser->setState('itexCmsGridPageForm', null);
}
$this->redirect($this->createUrl('index', $redirectParams));
}
}
}
if ($isNewRecord)
$this->pageTitle = $this->t('itexcms', 'CREATE_NEW_RECORD');
else
$this->pageTitle = $this->t('itexcms', 'UPDATE_RECORD', array('{recordName}' => $this->_cwm->getRecordName()));
if (Yii::app()->getRequest()->isAjaxRequest)
$this->layout = 'simple';
$this->render($this->viewFileMap($this->action->id), array('model' => $this->_cwm));
}