isnull в условии queryBuilder()

#
isnull в условии queryBuilder()
Подкажите пожалуйста, как в условии добавить isnull?

Или может поможете с решением задачи?
Необходимо выбрать N пользователей сайта, у которых значение доп.свойства такие же как у текущего пользователя. Если таких меньшее кол-во чем N, тогда нужно выбирать всех подряд.
Я решал так:

$oSiteuser = Core_Entity::factory('Siteuser')->getCurrent();

$oTmpSiteusers=$oSiteuser->Site->Siteusers;

$oTmpSiteusers->queryBuilder()
      ->select('siteusers.*')
      ->leftJoin('property_value_ints', 'property_value_ints.entity_id', '=', 'siteusers.id')
      ->where('siteusers.active', '=', 1)
      ->setAnd()
        ->open()
              ->where('property_value_ints.property_id', '=', '68')
              ->setOr()
              ->where('', 'isnull', 'property_value_ints.property_id')
          ->close()
      ->setAnd()
          ->open()
         ->where('property_value_ints.value', 'IN', $style_array)
              ->setOr()
              ->where('', 'isnull', 'property_value_ints.value')
          ->close()
      ->groupBy('siteusers.id')
      ->orderBy('property_value_ints.property_id=68','DESC')
      ->orderBy('property_value_ints.value','DESC')
      ->orderBy('siteusers.datetime','DESC')
      ->limit(8);
$oTmpSiteusers = $oSiteusersFollowers->findAll();

но оно ругаеться
The comparison operator 'ISNULL' doesn't allow
#
Re: isnull в условии queryBuilder()
Ой туплю, спать нужно

$oSiteuser = Core_Entity::factory('Siteuser')->getCurrent();
$Siteuser_Controller_Show = new Siteuser_Controller_Show(
   $oSiteuser
);
$oProperty = Core_Entity::factory('Property', 68);
$aProperty_Values=$oProperty->getValues($oSiteuser->id);


if(count($aProperty_Values)){
   foreach($aProperty_Values as $v)
      $style_array[]='property_value_ints.value='.$v->value;
}
$style=implode(' OR ',$style_array);
$oTmpSiteusers=$oSiteuser->Site->Siteusers;
$oTmpSiteusers->queryBuilder()
   ->select('siteusers.*')
   ->leftJoin('property_value_ints', 'property_value_ints.entity_id', '=', 'siteusers.id')
   ->where('siteusers.active', '=', 1)
   ->setAnd()
   ->groupBy('siteusers.id')
   ->orderBy(Core_QueryBuilder::expression('property_value_ints.property_id=68 and ('.$style.')'),'DESC')
   ->orderBy('siteusers.datetime','DESC')
   ->limit(8);

$aSiteusersFollowers = $oTmpSiteusers->findAll();


Нафиг же мне не нужны isnull. Только вот если добавляю


$Siteuser_Controller_Show->addEntity(
   Core::factory('Core_Xml_Entity')
      ->name('follower_user')
      ->addEntities($oTmpSiteusers)
);

apache ложится наглухо.
Ребят, помогите решить!!!
Модератор
#
Re: isnull в условии queryBuilder()
gashik,
что касается IS NULL, то условие:
[code->where('field', 'IS', NULL)]


gashik писал(а):
apache ложится наглухо.

Вероятно у Вас зацикленность объектов, т.к. дочерний объект имеет потомком родительского с таким же дочерним.

Попробуйте
$Siteuser_Controller_Show->addEntity(
   Core::factory('Core_Xml_Entity')
      ->name('follower_user')
      ->addEntities($oTmpSiteusers)
);


$Siteuser_Controller_Show->addEntity(
   $xxx = Core::factory('Core_Xml_Entity')
      ->name('follower_user')
);

foreach ($oTmpSiteusers as $oTmpSiteuser)
{
   $xxx->addEntity(
      $oTmpSiteuser->clearEntities()
   );
}
#
Re: isnull в условии queryBuilder()
не помогает. Изменил на ваш код.
Потом пробовал делать и так

   $oSite=Core_Entity::factory('Site',2);
   $oTmpSiteusers=$oSite->Siteusers;

и так

   $oTmpSiteusers=Core_Entity::factory('Siteusers');

все равно циклится
Авторизация