Relation с динамическим условием (через Scopes?)

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Закрыто
youroff
Сообщения: 228
Зарегистрирован: 2010.02.25, 16:05

Relation с динамическим условием (через Scopes?)

Сообщение youroff »

Как манипулировать выборкой в связи? Допустим, есть модель со связью Has Many, где лежат свойства с датой и мне нужно вытащить объекты так, чтобы в релейшене содержалась только какая-то определенная дата.

Relation в модели Event:

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

'dates' => array(self::HAS_MANY, 'EventProperty', 'IBLOCK_ELEMENT_ID', 
                    'together'=>true, 
                    'condition'=>'UNIX_TIMESTAMP(`VALUE`) > UNIX_TIMESTAMP()',
                    ),
Scope в модели EventProperty:

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

public function trimedBy($date)
    {
        $this->getDbCriteria()->mergeWith(array(
            'condition'=>'DATE(`VALUE`) = DATE("'.$date.'")',
        ));
        return $this;
    }
Используется в запросе:

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

$criteria->with = array(
            'dates' => array(
                'select' => false,
                'condition' => 'UNIX_TIMESTAMP(dates.`VALUE`) > UNIX_TIMESTAMP()',
                'scopes' => array(
                       'trimedBy' => $filter->date
                ),
            ),
         .....
И чо-то нифига не работает. В dates оказываются опять все даты, удовлетворяющие условию, заданному в описании связи: 'UNIX_TIMESTAMP(`VALUE`) > UNIX_TIMESTAMP()'
youroff
Сообщения: 228
Зарегистрирован: 2010.02.25, 16:05

Re: Relation с динамическим условием (через Scopes?)

Сообщение youroff »

Эээ, да, тупанул :) Сначала использовал для фильтрации только и поставил select false... ок.
Закрыто