mysql - 带有选定列的 Symfony 1.4 选择查询不起作用

标签 mysql sql symfony1 doctrine symfony-1.4

我想在 symfony Doctrine 中运行以下查询。

SELECT p.id AS id FROM skiChaletPrice p WHERE ski_chalet_id = ? AND month = ?

我写了我的 Doctrine 查询如下。

 $q = Doctrine_Query::create()
                ->select('p.id AS id')
                ->from('skiChaletPrice p')
                ->andWhere('ski_chalet_id = ?', $chaletId)
                ->andWhere('month = ?', $from);      

 $result = $q->fetchOne();
 if ($result->count() > 0) {            
     return $result->toArray();
 } else {
     return null;
 }   

但我的结果总是包括表中的所有列。什么问题?请帮我。

最佳答案

问题是 fetchOne() 将返回一个 Doctrine 对象,它隐含地包含表中的所有列。 $result->toArray() 正在将该 Doctrine 对象转换为数组,这就是您获取所有列的原因。

如果你只想要列的一个子集,不要水化一个对象,而是做这样的事情:

$q = Doctrine_Query::create()
            ->select('p.id AS id')
            ->from('skiChaletPrice p')
            ->andWhere('ski_chalet_id = ?', $chaletId)
            ->andWhere('month = ?', $from);  

$results = $q->execute(array(), Doctrine::HYDRATE_SCALAR);

参见 http://docs.doctrine-project.org/projects/doctrine1/en/latest/en/manual/data-hydrators.html

关于mysql - 带有选定列的 Symfony 1.4 选择查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16100173/

相关文章:

symfony1 - Symfony 2 还是 Symfony 1.4?

SQL 查询 - 如果没有可用值,则选择 0

Php 框架 : symfony 1, symfony 2 或 Yii

mysql - SQL按分钟平均值获取温度值

mysql - 从所有数据库的所有表中获取数据类型为 'date/datetime' 的列的最大值

mysql - 按城市名称分组,第一行只显示一次相同的城市名称

php - 比较两个单独列的日期值

php - Symfony 中的全局组件

Mysql 使用子字符串更新表

php - IN返回空的MySQL查询