2017-04-18 48 views
0

如何將label, trim, attr => [placeholder => "Field name"]添加到實體以顯示在窗體中(形式ContactMessageType,實體ContactMessage)? 我想在一個文件 - >實體類ContactMessage中配置表單字段和實體字段。 這可能嗎?如果是,如何? 如果不是,該怎麼辦?Symfony2:如何將標籤,attr添加到實體以顯示在表單中(ContactType表單,實體ContactMessage)?

我的實體:

use Symfony\Component\Validator\Constraints as Assert; 
use Doctrine\ORM\Mapping as ORM; 
/** 
* php app/console doctrine:schema:validate 
* php app/console doctrine:schema:update --force 
* 
* Class ContactMessage 
* @see http://symfony.com/doc/2.8/doctrine/registration_form.html 
* 
* @ORM\Entity 
* @ORM\Table(name="contact_messages", options={"collate"="utf8_general_ci"}) 
*/ 
class ContactMessage 
{ 
    public function __construct() 
    { 
     $this->createdDateTime = new \DateTime("now"); 
    } 

/** 
* @ORM\Column(type="integer", nullable=false, options={"unsigned":true, "length":11}) 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
* 
* @var integer 
*/ 
protected $id; 
/** 
* @Assert\NotBlank() 
* 
* @ORM\Column(type="string", name="sender_name", nullable=false, length=255, options={}) 
* 
* @var string 
*/ 
protected $senderName; 
/** 
* @Assert\NotBlank() 
* 
* @ORM\Column(type="string", name="sender_email", nullable=false, length=512, options={"default":""}) 
* 
* @var string 
*/ 
protected $senderEmail; 
/** 
* 
* 
* @ORM\Column(type="string", name="sender_message", nullable=false, length=4096, options={"default":""}) 
* 
* @var string 
*/ 
protected $senderMessage; 
/** 
* 
* @ORM\Column(type="string", name="sender_phone_number", nullable=false, length=16, options={"default":""}) 
* 
* @var string 
*/ 
protected $senderPhoneNumber; 

/** 
* @ORM\Column(type="datetime", name="created_date_time", nullable=false, options={"default": "0000-00-00 00:00:00"}) 
* 
* @var \DateTime 
*/ 
protected $createdDateTime; 

} 

回答

0

我不知道理解你的問題,但你可以添加YOUT FormType內標籤和佔位符:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('senderName', TextType::class, [ 
      'required' => false, 
      'label' => 'Your label', 
      'attr'  => [ 
       'placeholder' => 'Your placeholder', 
      ], 
     ]); 
} 
+0

我知道,我想要做的它在實體中。與@Assert \ ...因爲我寫了儘可能多的一個文件(實體),我添加實體形式作爲數據,所以我不知道如果你的代碼不會損害形式,當我有兩次'senderName'的形式,從實體和手動寫在建設者 – Radek

+0

@Assert不用於這一點,你不能。它僅用於在數據上添加斷言。 您需要將您的表單從您的實體中分離出來,因爲可能在未來,您需要爲一個實體提供多種表格 – Bouffe

+0

好的,謝謝,傷害。 – Radek

相關問題