2016-07-27 27 views
0

我有一個顯示視圖,必須自定義一點,以便我們可以編輯其中的內容。在這些事情中,有一個多重選擇是查詢的結果,以過濾我在控制器內部完成的學校,並通過渲染方法發送。__toString()在提交表單時必須返回一個字符串值

在此之前,我使用了多對多的多選表單來選擇數據庫中保存的每一所學校。現在我想使用它,所以我可以使用已經工作的東西。由於它是通過渲染而不是表單發送的,所以我設法創建了一個HTML表單,以顯示它,並查看提交表單時選擇的內容,但是我遇到了幾個問題:

首先,它想成爲一個對象的實例,並且能夠保存一個對象而不是一個數組。我設法做做以下幾點:

 $object = new Ecole(); 
     foreach ($ecolesDispo as $key => $value) 
     { 
      $object->$key = $value; 
     } 
     $mission->addEcolesDispo($object); 

(高等是學校)

現在我堅持了這個問題後馬上來了,因爲現在它希望它轉換爲字符串但是,我無法做到這一點。

下面是我的實體的相關部分的外觀。

/** 
* Constructor 
*/ 
public function __construct() 
{ 
    $this->ecolesDispo = new \Doctrine\Common\Collections\ArrayCollection(); 
} 

/** 
* @return string 
*/ 
public function __toString() 
{ 
    return (string) $this->addEcolesDispo($object); 
//Not sure about that part though 
} 

/** 
* Add ecolesDispo 
* 
* @param \EcoleBundle\Entity\Ecole $ecolesDispo 
* 
* @return Mission 
*/ 
public function addEcolesDispo(\EcoleBundle\Entity\Ecole $ecolesDispo) 
{ 
    $this->ecolesDispo[] = $ecolesDispo; 

    return $this; 
} 

/** 
* Remove ecolesDispo 
* 
* @param \EcoleBundle\Entity\Ecole $ecolesDispo 
*/ 
public function removeEcolesDispo(\EcoleBundle\Entity\Ecole $ecolesDispo) 
{ 
    $this->ecolesDispo->removeElement($ecolesDispo); 
} 

/** 
* Get ecolesDispo 
* 
* @return \Doctrine\Common\Collections\Collection 
*/ 
public function getEcolesDispo() 
{ 
    return $this->ecolesDispo; 
} 

如何將其轉換爲字符串?

預先感謝您

+0

實體是什麼,它是一個任務實體?另外,您可以顯示Ecole實體代碼嗎?你想用'__toString()'函數顯示什麼? –

回答

0

__toString函數應該是這樣的:

public function __toString() 
{ 
    return $this->id; // Because __toString seems to be called to set your $key variable... 
} 

- >依賴於字符串屬性。

在__toString()函數中,您使用(string),它將隱含地調用... __toString()$this轉換爲字符串。這將是一個通告。

0

試試這個,如果有在你使用__toString或使用該實體指定實體本身的任何字符串類型屬性的實體的字符串變量

public function __toString() 
{ 
    // Or change the property that you want to show 
    return $this->name; 
} 
相關問題