Exemplo n.º 1
0
 protected function getVisibleRelationshipsCriteria()
 {
     $criteria = new CDbCriteria();
     $qpg = new QueryParamGenerator(':getRelationshipsCriteria');
     $models = $this->getVisibleRelatedX2Models();
     if (!count($models)) {
         $criteria->addCondition('FALSE');
     } else {
         foreach ($models as $model) {
             $criteria->addCondition("(firstType=:myType AND firstId=:myId AND\n                          secondType={$qpg->nextParam(get_class($model))} AND \n                          secondId={$qpg->nextParam($model->id)})", 'OR');
             $criteria->addCondition("(secondType=:myType AND secondId=:myId AND\n                          firstType={$qpg->nextParam(get_class($model))} AND \n                          firstId={$qpg->nextParam($model->id)})", 'OR');
         }
         $criteria->params = array_merge(array(':myType' => get_class($this->owner), ':myId' => $this->owner->id), $qpg->getParams());
     }
     return $criteria;
 }
Exemplo n.º 2
0
 public function getRelationshipsCriteria($visibleOnly = false)
 {
     if (!$visibleOnly) {
         $criteria = new CDbCriteria(array('condition' => '(firstType=:myType AND firstId=:myId OR
                   secondType=:myType AND secondId=:myId) AND
                  (firstId IS NOT NULL AND firstId != "" AND
                   secondId IS NOT NULL AND secondId != "")', 'params' => array(':myType' => get_class($this), ':myId' => $this->id)));
     } else {
         $criteria = new CDbCriteria();
         $qpg = new QueryParamGenerator(':getRelationshipsCriteria');
         $models = $this->getVisibleRelatedX2Models();
         if (!count($models)) {
             $criteria->addCondition('FALSE');
         } else {
             foreach ($models as $model) {
                 $criteria->addCondition("(firstType=:myType AND firstId=:myId AND\n                          secondType={$qpg->nextParam(get_class($model))} AND \n                          secondId={$qpg->nextParam($model->id)})", 'OR');
                 $criteria->addCondition("(secondType=:myType AND secondId=:myId AND\n                          firstType={$qpg->nextParam(get_class($model))} AND \n                          firstId={$qpg->nextParam($model->id)})", 'OR');
             }
             $criteria->params = array_merge(array(':myType' => get_class($this), ':myId' => $this->id), $qpg->getParams());
         }
     }
     return $criteria;
 }