ZF2: Как проверить, что таблица уже объединена в Select - PullRequest
0 голосов
/ 27 сентября 2018

У меня проблема с выбором объекта в ZF2.

Class One {

  function search(){
    $select = new Select();
    $this->conditions($select);

    $select->join(['t'=>'table'],'t.id = other_table.table_id',[]);
  }

  function conditions(select $select){
    $select->join(['t'=>'table'],'t.id = other_table.table_id',[]);
  }
}

Первое соединение в порядке (в условии () метод).Как я могу проверить, если таблица уже присоединена, когда я хочу присоединиться к ней во второй раз?

Я не смог найти ответ ...

1 Ответ

0 голосов
/ 30 сентября 2018

Если вы посмотрите на Zend \ Db \ Sql \ Select class в ZF2, вы увидите, что не существует метода, который может дать вам эту информацию.

Я бы предложил создать отдельный метод для операций соединения в вашем классе и иметь флаг (логический) в вашем классе, который будет указывать, был ли вызван метод соединения:

private $isJoinCalled = false;

private function join($select){
    $select->join(['t'=>'table'],'t.id = other_table.table_id',[]);
    $this->isJoinCalled = true;
} 

Этокак вы можете вызвать этот метод после того, как вы проверите, было ли вызвано соединение или нет:

if(!$this->isJoinCalled){
    $this->join($select);
}
...