【问题标题】:Return selected columns from a query in Doctrine 2/ZF从 Doctrine 2/ZF 的查询中返回选定的列
【发布时间】:2012-03-11 17:23:26
【问题描述】:

我使用 Doctrine 2 来管理我的实体和 Zend_Auth 来管理授权。我可以使用

轻松获取用户的完整详细信息
$user = $this->em->getRepository('Entities\User')->findOneByUsername($username));

我成功授权,然后想存储用户,以便我可以访问某些详细信息

$storage = $auth->getStorage();
$storage->write($user);

这一切正常,但我担心将完整的用户详细信息存储到 Zend_Auth 存储中。

我的想法是限制 findOneByUsername 返回的列(删除密码和其他结果)。阅读 Doctrine 文档,这似乎是不可能的。我还查看了 queryBuilder(并且可以构建合适的查询),但似乎再次只能选择全部。

将查询结果限制为几列的最佳方法是什么?

【问题讨论】:

    标签: zend-framework doctrine-orm


    【解决方案1】:

    在会话中存储用户对象不是一个好习惯。您应该只存储用户 ID 并在需要时查询数据库并将用户对象存储在实例变量中。有很多示例here 如何编写自定义选择。请注意,$query->getResult() 返回的类型取决于 select 语句...如果您不选择所有字段,则会返回一个数组。

    【讨论】:

    • 感谢您直接查看手册。出于某种原因,我的谷歌正在向 Doctrine 手册扔掉很多不可用的页面。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多