我对ZF2中的Select对象有问题。
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',[]);
}
}
第一次连接很好(在condition()方法中)。当我想第二次加入表格时,如何检查表格是否已经加入?
我找不到答案...
答案 0 :(得分:1)
如果您查看ZF2中的 Zend \ Db \ Sql \ Select 类,您会发现没有方法可以为您提供这些信息。
我建议为您的类中的联接操作创建一个单独的方法,并在您的类中具有一个标志(布尔值),以指示是否已调用联接方法:
private $isJoinCalled = false;
private function join($select){
$select->join(['t'=>'table'],'t.id = other_table.table_id',[]);
$this->isJoinCalled = true;
}
这样,您可以在检查是否调用了join之后调用此方法:
if(!$this->isJoinCalled){
$this->join($select);
}