Несколько методов для одного экземпляра класса.

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
nenor
Сообщения: 27
Зарегистрирован: 2013.08.27, 09:45

Несколько методов для одного экземпляра класса.

Сообщение nenor » 2014.03.25, 13:48

Столкнулся со следующей непоняткой. Имеется код, такого вида:

Контроллер

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

private function search() {
$Profiles = new Profile();
/*
* тут различные условия поиска
*/
        if ($option_noimage) {
            $Profiles->scSkipNoImage();
        }
$SearchResult['Profiles'] = $Profiles->findAll(array('limit' =>15)); // [1]
$SearchResult['CountProfiles'] = $Profiles->count(); // [2]
return $SearchResult;
}
Условия поиска в модели:

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

  public function scSkipNoImage() {
        $this->getDbCriteria()->mergeWith(array(
            'condition' => 'pic IS NOT NULL',
        ));
        return $this;
    }
 
После выполнения [1], последующие методы экземпляра модели выполняются некорректно, то есть в [2] получается статичное значение у $SearchResult['CountProfiles']. Если поменять строки местами, [2] => [1], то снова будет корректно выполняться метод, следующим первый. Пробовал ввести переменные и присвоить экземпляр класса с измененными условиями поиска, но результата не дает.
Вопрос: Каким образом можно добиться корректного выполнения методов [1] и [2]?

nenor
Сообщения: 27
Зарегистрирован: 2013.08.27, 09:45

Re: Несколько методов для одного экземпляра класса.

Сообщение nenor » 2014.03.27, 08:53

Кто нибудь из гуру php может помочь?

Аватара пользователя
asset
Сообщения: 245
Зарегистрирован: 2012.12.04, 20:50
Откуда: Казахстан

Re: Несколько методов для одного экземпляра класса.

Сообщение asset » 2014.03.27, 09:54

откуда $SearchResult взялся? массив присвоен?

если так,что будет?

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

$SearchResult['CountProfiles'] =  count($Profiles->findAll()); 
 

Аватара пользователя
SiZE
Сообщения: 2698
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Несколько методов для одного экземпляра класса.

Сообщение SiZE » 2014.03.27, 10:09

А почему не хочешь вернуть CActiveDataProvider и пользоваться его методами?

http://www.yiiframework.com/doc/api/1.1 ... unt-detail

http://www.yiiframework.com/doc/api/1.1 ... ata-detail
в поиске работы

nenor
Сообщения: 27
Зарегистрирован: 2013.08.27, 09:45

Re: Несколько методов для одного экземпляра класса.

Сообщение nenor » 2014.03.28, 08:41

SiZE писал(а):А почему не хочешь вернуть CActiveDataProvider и пользоваться его методами?

http://www.yiiframework.com/doc/api/1.1 ... unt-detail

http://www.yiiframework.com/doc/api/1.1 ... ata-detail
Слишком много памяти кушает, пришлось отказаться.

Аватара пользователя
SiZE
Сообщения: 2698
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Несколько методов для одного экземпляра класса.

Сообщение SiZE » 2014.03.28, 13:08

nenor писал(а):Слишком много памяти кушает, пришлось отказаться.
Пробовал? http://yiiframework.ru/doc/cookbook/ru/ ... r.iterator

А сколько кушает то в итоге? Я че-то сомневаюсь что 15 записей в памяти среднестатистической таблицы профиля вообще что-то кушают
в поиске работы

Ответить