Реляционная Active Record в Yii. Как пользоваться?

Понял в чем ошибка

Добрый день. Не могу понять Active Record в Yii.

Есть модели Test & Question пытаюсь соединить.
Test:
public function relations()
    {
        return array(
            'test'=>array(self::HAS_MANY, 'Question', 'type'),
        );
    }


Question:
public function relations()
    {
        return array(
            't_test'=>array(self::HAS_MANY, 'Test', 'name'),
        );
    }


Таблица Test:

- id = (1)
- name = (2)
- description = (3)


Таблица Question:

- id = (1)
- id_test = (2)
- question = (3)


Вот код в контроллере:
public function actionIndex()
    {
        // получаем запись с ID=10
        $post=Test::model()->findByPk(1);
        var_dump($post);
        // Получаем автора записи. Здесь будет выполнен реляционный запрос.
        $author=$post->test;
        var_dump($author);
    }


Выводит следующее:

object(Test)[34]
  private '_new' (CActiveRecord) => boolean false
  private '_attributes' (CActiveRecord) => 
    array (size=7)
      'id' => string '1' (length=1)
      'name' => string 'asdzsd' (length=6)
      'description' => string 'fszdfds' (length=7)
      'author' => string '0' (length=1)
      'status' => string '0' (length=1)
      'create_at' => string '2014-09-25 17:56:59' (length=19)
      'edit_at' => string '0000-00-00 00:00:00' (length=19)
  private '_related' (CActiveRecord) => 
    array (size=0)
      empty
  private '_c' (CActiveRecord) => null
  private '_pk' (CActiveRecord) => string '1' (length=1)
  private '_alias' (CActiveRecord) => string 't' (length=1)
  private '_errors' (CModel) => 
    array (size=0)
      empty
  private '_validators' (CModel) => null
  private '_scenario' (CModel) => string 'update' (length=6)
  private '_e' (CComponent) => null
  private '_m' (CComponent) => null

array (size=0)
  empty


Выводит пустой массив. Вообще запутался(
  • Вопрос задан
  • 2497 просмотров
Пригласить эксперта
Ответы на вопрос 1
ArtMikS
@ArtMikS Автор вопроса
В чем ошибка я уже понял, но все равно суть немного непонятна. Быть может посоветуете несколько статеек?
P.s нужно было в Test ( model ) писать это:
public function relations()
    {
        return array(
            'test'=>array(self::HAS_MANY, 'Question', 'id_test'),
        );
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы