php - 如何在 Doctrine native 查询的结果中获取非映射列

标签 php symfony doctrine-orm nativequery doctrine-native-query

如何从 native 查询的结果中获取非映射列?

我的查询:

$query = $this->getEntityManager()->createNativeQuery(
            "SELECT m.id, m.title, MATCH(m.title) AGAINST('$slug') AS score "
            . "FROM music AS m "
            . "ORDER BY score DESC LIMIT 100", $rsm);

score 列未映射到实体中,我无法从 Twig 访问它的值。是否可以仅针对此查询将此列添加到实体中?

最佳答案

如果你想在 Twig 模板中显示分数,你可以尝试以下步骤:

1) 将不带任何映射配置的 $score 属性添加到您的 Music 实体:

class Music {
    //Other mappings

    protected $score;

    //TODO: add getter/setter for $score
} 

2) 将其添加到您的 ResultSetMapper:

$rsm->addRootEntityFromClassMetadata('YourBundle:Music', 'm');
$rsm->addMetaResult('m', 'score', 'score', false, 'integer'); //first 'score' is your DB alias

3) 调用你的search.html.twig:

{{ object.score }} 

其中 object 是您的 Music 实体。

可以找到有关纯结果和混合结果的其他信息 here .

关于php - 如何在 Doctrine native 查询的结果中获取非映射列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005162/

相关文章:

php - Slim Framework 为 PDF 设置名称

php - Laravel 从父类别及其所有子类别中获取所有产品

symfony - 多对多关系 querybuilder 学说和 symfony2 扩展查询

zend-framework - doctrine2实体关联有什么问题

php - CSS 侧边栏无缘无故掉落在页面上?

symfony - 显示使用的配置和参数文件

symfony - 如何在 symfony 中获取请求 header value

symfony - 使用 Doctrine 和 Symfony2 进行数据库搜索

symfony - 教义自定义类型总是改变表

php - 如何在 PHP 5.4 中遍历 SplObjectStorage 时获取与当前键关联的对象