Deshabilitar algunas opciones seleccionar en Zend Framework 2

Desactivaría la selección de algunas opciones en Zend Framework 2. Tengo una selección de idiomas hablados, cuando el usuario guarda un idioma hablado, lo desactivaría porque no puede volver a guardar el mismo idioma.

dentro de 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...... ), ))); 

Dentro de mi controlador, traté de hacer esto, pero no funciona. La función desactiva la selección completa:

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

¿Dónde estoy equivocado? Muchísimas gracias por la ayuda.

Para desactivar algunas opciones, debe proporcionar no solo una etiqueta escalar, sino una matriz:

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