Browse Source

Also correctly disabled complex values.

Mark Story 10 years ago
parent
commit
a2e2f16015

+ 1 - 1
src/View/Widget/MultiCheckboxWidget.php

@@ -130,7 +130,7 @@ class MultiCheckboxWidget implements WidgetInterface
             if ($this->_isSelected($checkbox['value'], $data['val'])) {
                 $checkbox['checked'] = true;
             }
-            if ($this->_isDisabled($key, $data['disabled'])) {
+            if ($this->_isDisabled($checkbox['value'], $data['disabled'])) {
                 $checkbox['disabled'] = true;
             }
             if (empty($checkbox['id'])) {

+ 2 - 0
tests/TestCase/View/Widget/MultiCheckboxWidgetTest.php

@@ -98,6 +98,7 @@ class MultiCheckboxWidgetTest extends TestCase
         $data = [
             'name' => 'Tags[id]',
             'val' => 2,
+            'disabled' => ['1'],
             'options' => [
                 ['value' => '1', 'text' => 'CakePHP', 'data-test' => 'val'],
                 ['value' => '2', 'text' => 'Development', 'class' => 'custom'],
@@ -107,6 +108,7 @@ class MultiCheckboxWidgetTest extends TestCase
         $expected = [
             ['div' => ['class' => 'checkbox']],
             ['input' => [
+                'disabled' => 'disabled',
                 'type' => 'checkbox',
                 'name' => 'Tags[id][]',
                 'value' => 1,