Задать вопрос
@sacred1

Сохранение связанных данных yii1 (active record)?

Всем доброго времени суток. Совсем недавно начал разбираться с yii, поэтому не обессудьте. Например у нас есть две таблицы. Первая таблица authors с полями - `id`(pk),`name`,`surname`, вторая таблица posts с полями - `post_id`,`post` и `author_id` где это поля является внешним ключом (on delete cascade on update cascade). И собственно вопрос, как при добавление данных, добавить последний этот самый id из таблицы authors в таблицу posts поля author_id.
Как я пытался и у меня не получилось,сам контроллер:
$model_authors = new Authors;
$model_posts= new Posts;
        if(isset($_POST['Authors ']) && isset($_POST['Posts '])){

            $model_authors ->attributes=$_POST['Authors '];
            $model_posts->attributes=$_POST['Posts '];
            $model_posts->author_id = $model_authors->id;
       }

В самом контроллере, напрочь не получается подцепить этот идентификатор(id), банально его не видит, когда var_dump смотрю, на то что он сохраняет.
Так же пытался и через afterSave в самой модели. Модель authors:
protected function afterSave(){
        parent::afterSave();
        $post= new Posts;
        $post->author_id = $this->id;
        $post->save();
    }

Здесь же если смотреть через var_dump $this->id это как разный и есть наш lastinsertid, но почему сохранение так же не происходить.
Буду очень признателен если разъясните!
  • Вопрос задан
  • 2549 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Максим Колокольников К ответам на вопрос (2)
В первом случае ДО сохранения модели $model_authors у неё не существует id(если это MySQL и id автоинкрементный).
Второй случай должен работать, тут уже надо смотреть модель Posts, может не проходит валидация или что ещё в это роде.
Ответ написан