如何添加一个选择到ZF2中的哪个位置? !

如何添加一个选择到ZF2中的哪个位置? !

问题描述:

首先,你好=)如何添加一个选择到ZF2中的哪个位置? !

我想知道是否有人知道如何写一个选择的地方,如

SELECT my_column 
FROM my_table 
WHERE field_1 = something 
AND field_2 = (SELECT field_2 
       FROM my_table_2 
       WHERE my_field = $myParam); 

我知道如何写这个查询,而不选择:

//This part shouldn't matter, it's just my way of connecting to table database 
$select = $mytable1->getTableGateway()->getSQL()->select(); 

//This is where the fun begin 
$select->colunms(array('my_column')) 
     ->where(array('field_1' => 'something', 'field_2' => ??); 

TRY 1: 使用另一个变量,让我连接到其他基地似乎不工作,因为,当然它不是一个数组或什么...

$select_2 = $myTable2->tableGateway->getSQL()->select(); 

$select_2->colunms(array('field_2')) 
     ->where(array('my_field' => $myParam); 
$select->colunms(array('my_column')) 
     ->where(array('field_1' => 'something', 'field_2' => $select_2); 

我尝试添加类似:

$var= $myTable2->getTableGateway()->selectWith($select_2); 
//and then 
$select->colunms(array('my_column')) 
     ->where(array('field_1' => 'something', 'field_2' => $var->toArray()); 

它也不管用,自然是因为它不是一条线......

我不认为一个foreach是真的有必要

在我思考之前我有什么想法吗? 预先感谢

在ZF1它的工作原理是这样的:

$select_2 = $myTable2->tableGateway->getSQL()->select(); 

$select_2->columns(array('field_2')) 
     ->where(array('my_field = ?' => $myParam); 
$select->columns(array('my_column')) 
     ->where(array('field_1 = ?' => 'something', 'field_2 = ?' => $select_2) 

老实说,我不知道这是否会在ZF2工作,但尝试添加通配符“?”到你的where子句。

最好,

+0

这实际上工作...不知道当我第一次尝试这个时出了什么问题......非常感谢= D – Pooka