Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony1 没有FROM子句,如何测试dql代码?_Symfony1_Doctrine - Fatal编程技术网

Symfony1 没有FROM子句,如何测试dql代码?

Symfony1 没有FROM子句,如何测试dql代码?,symfony1,doctrine,Symfony1,Doctrine,我想测试DQL是否支持这种语法:ROUND(NOW(),'YEAR')(MySQL支持)。以下是我在MySQL控制台中尝试的内容: mysql> SELECT ROUND(NOW(), 'YEAR'); +----------------------+ | ROUND(NOW(), 'YEAR') | +----------------------+ | 20100923135639 | +----------------------+ 在DQL中尝试相同的方法会得到以下结果

我想测试DQL是否支持这种语法:
ROUND(NOW(),'YEAR')
(MySQL支持)。以下是我在MySQL控制台中尝试的内容:

mysql> SELECT ROUND(NOW(), 'YEAR');
+----------------------+
| ROUND(NOW(), 'YEAR') |
+----------------------+
|       20100923135639 |
+----------------------+
在DQL中尝试相同的方法会得到以下结果:

techosaure :( \>~/workspace/carel  ./symfony  doctrine:dql --show-sql "Select ROUND(NOW(),'YEAR')";
>> doctrine  executing dql query
DQL: Select ROUND(NOW(),'YEAR')
PHP Fatal error:  Maximum function nesting level of '100' reached, aborting! in /opt/symfony-1.4.6/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Query/Tokenizer.php on line 352

如何在不使用FROM子句的情况下在DQL中测试函数?

您可以执行以下操作:

Doctrine_Query::create()
  ->from('Model m')
  ->select('m.id, ROUND(NOW(), "YEAR") AS round_test')
  ->fetchOne();
我知道您不想使用FROM子句,但我认为DQL查询必须作用于模型

greg0ire>在我的例子中,以下是我尝试过的(以及结果):


你可以这样做:

Doctrine_Query::create()
  ->from('Model m')
  ->select('m.id, ROUND(NOW(), "YEAR") AS round_test')
  ->fetchOne();
我知道您不想使用FROM子句,但我认为DQL查询必须作用于模型

greg0ire>在我的例子中,以下是我尝试过的(以及结果):


谢谢,这很有效!太糟糕了,如果没有一个至少有一条记录的表,您就无法测试函数…谢谢,这很有效!太糟糕了,如果没有一个至少有一条记录的表,就无法测试函数。。。