在我想要这样做的网站上:(简化)
myHandlers = new Array();
for(var i = 0; i < 7; i++) {
myHandlers.push(new Handler({
handlerName: 'myHandler'+i, // works, e.g. ->myHandler1, 2, 3 etc.
handlerFunc: function(bla) { /*...*/ alert(i); } // doesn't work,all return 7
}
}
Run Code Online (Sandbox Code Playgroud)
我可以将计数器设置为我的处理程序的另一个属性(它将复制当前值)并在我的函数中使用它,但我想,还有一种方法可以实际复制此值,不是吗?
我正在为一个网站编写TYPO3扩展程序.由于我使用的是Extbase Framework,因此我有一个Repository类(Tx_Extbase_Persistence_Repository),我连续执行两个SQL查询:
$query1 = $this->createQuery();
$query1->statement($sql1);
$res1 = $query1->execute();
$query2 = $this->createQuery();
$query2->statement($sql2);
$res1 = $query2->execute();
Run Code Online (Sandbox Code Playgroud)
双方$res1和$res2包含Tx_Extbase_Persistence_QueryResult.现在我想返回合并后的结果,我不知道如何完成.返回原始数组不是一个选项,因为我依赖于QueryResult类的函数,我也想避免组合sql(UNION,JOIN).我已经尝试过了:
$myResult = $this->objectManager->create('Tx_Extbase_Persistence_ObjectStorage')
foreach($res1 as $obj) {
$myResult->attach($obj);
}
//foreach $res2
Run Code Online (Sandbox Code Playgroud)
..但这会抛出一个错误("could not determine the child object type")
那么你如何正确地结合两个Tx_Extbase_Persistence_QueryResult?
编辑:
通过组合,我的意思是代替两个单独的QueryResults我想要只包含两个结果$query1以及$query2.遗憾的是,SQL-UNION或JOIN不是一个选项.