relations

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
phillip
Сообщения: 53
Зарегистрирован: 2011.01.24, 18:03
Контактная информация:

relations

Сообщение phillip »

осваиваю работу со связанными таблицами, читаю мануал
http://yiiframework.ru/doc/guide/database.arr
У меня две таблицы в бд, одна Клиенты (модель Clients) и вторая Ссылки_клиентов (модель ClientsSitesLinks). Одну клиенту принадлежит множество ссылок.
Связь через поля id (поле клиента) - clientid (поле у ссылок, указывающее какому клиенту принадлежит ссылка)
В модели Clients дописываю

Код: Выделить всё

public function relations()
    {        
        return array(
            'id'=>array(self::HAS_MANY, 'ClientsSitesLinks', 'clientid'),
        );
    } 
Модели ClientsSitesLinks дописываю

Код: Выделить всё

public function relations()
    {
        return array(
            'clientid'=>array(self::BELONGS_TO, 'Clients', 'id'),
        );
    } 
В контроллере пробую получитб доступ:

Код: Выделить всё

$model=Clients::model()->with('ClientsSitesLinks')->findByPk($id);
        print_r($model); 
В ответ получаю
Relation "ClientsSitesLinks" is not defined in active record class "Clients".
Что не так?
Аватара пользователя
radamir
Сообщения: 142
Зарегистрирован: 2009.08.10, 08:02
Откуда: Новосибирск

Re: relations

Сообщение radamir »

В модели Clients

Код: Выделить всё

public function relations()
{        
    return array(
        'links'=>array(self::HAS_MANY, 'ClientsSitesLinks', 'clientid'),
    );
}  
В модели ClientsSitesLinks

Код: Выделить всё

public function relations()
{
    return array(
        'client'=>array(self::BELONGS_TO, 'Clients', 'clientid'),
    );
} 
В контроллере

Код: Выделить всё

$model=Clients::model()->with('links')->findByPk($id); 
Аватара пользователя
phillip
Сообщения: 53
Зарегистрирован: 2011.01.24, 18:03
Контактная информация:

Re: relations

Сообщение phillip »

спасибо
а как он понял что clientid надо сопоставить с id? просто потому что id- первичный ключ?
lnghost
Сообщения: 134
Зарегистрирован: 2011.07.26, 18:05
Откуда: Воронеж
Контактная информация:

Re: relations

Сообщение lnghost »

Ага
Конференция: yii@conference.jabber.ru Сайт: http://kamaran.ru
Ответить