2017-12-18 3 views
1

エンティティに関連するコメントのリストを返そうとしています。クエリが実行されて戻るときに、関連するフィールドは意味のある結果を提供しません。ここでsymfonyの関連データからオブジェクトのプロパティを返しますjson result

はコメント実体宣言は

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

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

これにより、ユーザは、以下の機能は、上記の関数を呼び出す特定の書籍に

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" 

答えて

1

するのではなく、この結果からオブジェクトのプロパティを返すことができますしてください。代わりに

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

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

ホープ、このh elp

+0

ありがとうございました......... – Float

+0

こんにちは@お待ちください – Matteo

+0

https://stackoverflow.com/questions/47870881/get-a-list-of-all-the-object-properties-異なるユーザー、つまりユーザーのことを追う – Float

関連する問題