我有一個消息實體和一個用戶。我想讓用戶能夠發送消息給其他人。我已經可以發送和接收消息,一切工作正常,但爲了選擇消息的接收者,所有用戶的默認下拉列表。Symfony textfield ajax用戶
我想要做的是將下拉列表更改爲文本字段,並將AJAX創建到數據庫,並檢索找到的匹配插入到文本字段中的關鍵字的用戶列表。當點擊其中一個時,用戶被引入到文本框中。
,我現在面臨的問題是,我不知道怎麼打發,而不是明文的實體,因爲我得到這個錯誤
Argument 1 passed to PrivateMessageBundle\Entity\Message::setReceiver() must be an instance of CrudBundle\Entity\User, string given
另一個問題,就是有,這是否更容易捆綁或插件我可以修改?或者我每次都必須自己做每個阿賈克斯領域?
我建立的形式,像這樣
$builder
->add('title')
->add('content','textarea')
->add('receiver','text');
默認情況下,接收器是一個下拉列表中選擇,並自動選擇用戶實體,但一旦我將其更改爲文本事實並非如此。
這裏也是我的實體的相關部分,如果需要的話:
class Message
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=50)
*/
protected $title;
/**
* @ORM\ManyToOne(targetEntity="CrudBundle\Entity\User")
* @ORM\JoinColumn(referencedColumnName="id")
*/
protected $receiver;
/**
* @ORM\ManyToOne(targetEntity="CrudBundle\Entity\User")
* @ORM\JoinColumn(referencedColumnName="id")
*/
protected $sender;
/**
* @var string
*
* @ORM\Column(name="content", type="string", length=2000)
*/
protected $content;
我的User類,擴展FOSUserBundle的BaseUser類。
class User extends BaseUser implements AuthorInterface
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
看到[this](http://stackoverflow.com/questions/23235080/is-it-possible-to-have-an-autocomplete-text-box-in-symfony-bootstrap) – user2268997