【问题标题】:A reference to the object element Symfony2对对象元素 Symfony2 的引用
【发布时间】:2023-03-22 16:27:02
【问题描述】:

我尝试从消息实体获取“内容”。 这是我的转储($messages): http://s13.postimg.org/96ytd93vb/message.png

和我在控制器中的代码:

 $em = $this->getDoctrine()->getEntityManager();
    $messages = $em->getRepository('DashboardMainBundle:Message')->findBy(
        array(
            'receiver'=> $UserId,
            'id' => $Id
        ),
        array('createdAt' => 'ASC')
    );

如何从控制器中的这个数组中获取“内容”?

看起来很简单,但我尝试了很多方法,但都失败了......

【问题讨论】:

    标签: symfony doctrine entity


    【解决方案1】:

    对于您当前显示的内容,您得到了一个数组结果。当前,您的 Message 实例存储在 $messages[0] 中。因此,您要么必须迭代您的结果(如果您希望有多个记录),或者如果您希望有一条记录,则将 findBy 替换为 findOneBy

    【讨论】:

    • 我不知道为什么,但在这种特殊情况下 foreach 不起作用/没有显示 antyhing
    • 如果你转储$messages[0]会发生什么?那您可以访问Message 实例吗?如果是,那么迭代这个结果集应该没问题。
    • 这是我的转储($messages[0]):s21.postimg.org/f6e7b1rc7/message2.png我现在该怎么办?
    • 通常情况下,您应该能够通过访问$messages[0]->getContent(); 来查看您的内容,但如果您希望获得多个结果,这是不对的。试试别的。假设你像这样迭代 - foreach($messages as $item) {} 尝试在花括号之间转储 $item 看看你会得到什么。
    • 所以如果我尝试 ->getContent() 我得到错误“错误:在非对象上调用成员函数 getId()”,如果我尝试迭代并转储它是相同的错误: /
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 2016-04-10
    • 2017-04-23
    • 2015-11-14
    • 1970-01-01
    • 2016-05-10
    相关资源
    最近更新 更多