簡體   English   中英

根據symfony formType中的條件禁用文本框

[英]Disabling a text box depending of a condition in symfony formType

我在Symfony2中很陌生,並且表單類型有問題。

我在數據庫中有表“ messages”,每個消息都有一個id,消息和所有者。

然后,我必須在表單中顯示這些消息。 所以我這樣做:

->add('shortComment', 'text', array(
            'label' => 'Short Message',
            'data' => $this->_predefinedMessage->getShortComment()))

所以,對我來說,問題是當我想在以下情況下禁用此文本框時:

owner != currentUser

我不知道該怎么做。 我將不勝感激。

非常感謝。

一種解決方案是將$ disabled字段發送到表單中,但在控制器內部對其進行初始化:

$disabled = $owner == $currentUser ? false : true;

$form = $this->createForm(new YourFormType($disabled), $messageEntity);

在YourFormType.php中

class YourFormType extends AbstractType
{
    protected $disabled;

    public function __construct($disabled){
        $this->disabled = $disabled;
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('shortComment', 'text', array(
            'label' => 'Short Message',
            'disabled' => $this->disabled
        ));    
    }

}

希望對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM