2015-07-11 97 views
1

我会在Zend Framework 2中禁用某些选项的选择。我有关于口语的选择,当用户保存口语时,我将禁用它,因为他不能再保存同一种语言。在Zend Framework中禁用某些选项选择

内LanguageForm.php

$this->add(array(
      'name' => 'languages', 
      'attributes' => array (
        'class' => 'form-control', 
      ), 
      'type' => 'select', 
      'options' => array(
        'label' => 'Languages', 
        'empty_option' => 'Select spoken languages', 
        'value_options' => array(
               1 => 'English', 
               2 => 'Spanish', 
               3 => 'German', 
               4 => 'Italian' 
               .......... continue...... 
             ), 
          ))); 

我的控制器中,我试图做这样的,但是还是不行。该功能禁用整个选择:

$spoken = array (1,2); 
$form->get('languages')->setAttribute('disabled', $spoken); 

我在哪里错了?非常感谢帮忙。

回答

3

要禁用一些选项,你应该提供的不只是一个标量标签,但一个数组:

$options = $form->get('languages')->getValueOptions(); 
foreach ([1,2] as $value) 
{ 
    $options [$value] = [ 
     'label' => $options [$value], 
     'disabled' => true, 
     'value' => $value 
    ]; 
} 

$form->get('languages')->setValueOptions($options); 
+0

作品!谢谢! :) –