Я бы отключил выбор некоторых параметров в Zend Framework 2. У меня есть выбор для разговорных языков, когда пользователь сохраняет разговорный язык, я бы отключил его, потому что он не может снова сохранить тот же язык.
внутри 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);
где я ошибаюсь? Большое спасибо за помощь.
Чтобы отключить некоторые параметры, вы должны предоставить не только скалярную метку, но и массив:
$options = $form->get('languages')->getValueOptions(); foreach ([1,2] as $value) { $options [$value] = [ 'label' => $options [$value], 'disabled' => true, 'value' => $value ]; } $form->get('languages')->setValueOptions($options);