【问题标题】:return object's properties from related data in symfony json result从 symfony json 结果中的相关数据返回对象的属性
【发布时间】:2017-12-18 13:10:09
【问题描述】:

我正在尝试返回与实体相关的 cmets 列表。查询结果在运行和返回时,相关字段没有提供有意义的结果。

这里是评论实体声明

/**
     * @var Books
     *
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Books")
     */
    private $imagefk;

    /**
     * @var User
     *
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Users")
     */
    private $userfk;

这是我的控制器 sn-ps 代码,用于获取用户对特定书籍的所有评论

private function serializeComments(Comments $cmt) {
        return array(
            'message' => $cmt->getMessage(),
            'userid' => $cmt->getUserfk(),
            'bookid' => $cmt->getBookfk(),
        );
    }

下面的函数调用上面的函数

public function getAllCommentsAction($books)
    {


    $messages = $em->getRepository("AppBundle")->findBy(
        array(
            "imagefk" => $books
        )
    );


    $data = array();

    foreach ($messages as $message)
    {
        array_push($data, $this->serializeComments($message));
    }
    $response = new Response(json_encode($data), 200);
    $response->headers->set('Content-Type', 'application/json');
    return $response;
    }

这是尝试的结果

[{"message":"This is comment for a user one","userid":{"__initializer__":{},"__cloner__":{},"__isInitialized__":false},"bookid":{"path":"http:\/\/10.0.2.2:88\/xxx\/web\/uploads\/pdf\/5ub3uy8zv09cee2avi11.pdf"}}

请问我怎样才能从这个结果而不是这个返回对象属性

"userid":{"__initializer__":{},"__cloner__":{},"__isInitialized__":false},"bookid":{"path":"http:\/\/10.0.2.2:88\/xxx\/web\/uploads\/pdf\/5ub3uy8zv09cee2avi11.pdf"

【问题讨论】:

    标签: php json symfony


    【解决方案1】:

    尝试访问对象属性:

    'userid' => $cmt->getUserfk()->getId(),
    

    而不是

    'userid' => $cmt->getUserfk(),
    

    希望有帮助

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2023-01-26
    • 2012-03-18
    • 2016-04-11
    • 2022-01-01
    相关资源
    最近更新 更多