2015-07-11 110 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

作品!謝謝! :) –