2015-01-01 83 views
-1

我試圖配置Sonata AdminBundle。它是一個非常有趣的包,有許多功能,但它不是直接使用。我有一個郵政實體,所以我可以調整帖子,如在文檔手冊。我想實現一個子管理員,爲每個職位的評論(多對一關係)。我將它作爲一個服務實現併爲該變量實現了一個__toString()方法,但是我得到以下錯誤:無法呈現帶兒童的Sonata AdminBundle

在呈現模板期間拋出了異常(「Catchable致命錯誤:Object of class Doctrine \ ORM \ PersistentCollection無法轉換爲字符串「)在SonataDoctrineORMAdminBundle:CRUD:list_orm_many_to_one.html.twig在第17行。

我不明白爲什麼不能將它轉換爲ManyToOne變量的內容的字符串。任何幫助在這裏讚賞。

這裏是郵政實體代碼:

<?php 

namespace Blog\BlogBundle\Entity; 

class Post 

/** 
* @var ArrayCollection 
* 
* @ORM\OneToMany(targetEntity="Comment", mappedBy="post", cascade={"remove"}) 
*/ 
private $comments; 

/** 
* Construct DateTime and Comments Array 
*/ 
public function __construct() 
{ 
    $this->createdAt = new \DateTime(); 

    $this->comments = new ArrayCollection(); 
} 

/** 
* @return mixed 
*/ 
public function __toString() 
{ 
    return $this->comments; 
} 

Other private and setters and getters 

回答

0

IMO:

/** 
* @return mixed 
*/ 
public function __toString() 
{ 
    return $this->comments; 
} 

這個方法必須返回一個字符串,而不是一個數組集合

+0

那麼爲什麼我得到這個錯誤? – Garces

+0

因爲__toString()方法必須放入您的評論實體,而不是Post。 – darko

+0

我已經在Post和Comment實體上實現了__toString(),並且仍然得到非常相同的錯誤,即使我只在註釋實體上使用了該方法。請任何其他建議? – Garces