Cakephp 3 Не може да се маркират няколко избрани квадратчета

Моят файл за преглед на редактиране има набор от квадратчета за отметка. Успях да извлека избраните стойности на квадратчето за отметка от базата данни и искам да ги маркирам като избрани във файла за преглед.

Редактиране на файла за преглед

 <div class="col-md-12">
    <?= $this->Form->label('category','Pick Categories');?>
    <?= $this->Form->select('category', $options,['multiple'=>'checkbox', 'required'=>'false', 'label'=>'Category','class'=>'col-md-12','selected'=>$catSel]); ?>
</div>

$options е

$options = ['A'=>'Val1',
            'B'=>'Val2',
            'C'=>'Val3',
            'D'=>'Val4',
            'E'=>'Val5'];

$catSel е зададен в моя контролер и връща правилните стойности. Проверих с print_r(), показано по-долу:

Array ( [0] => 1 [1] => 3 )

Опитах също директно въвеждане на избраната стойност

<?= $this->Form->select('shop_category', $options,['multiple'=>'checkbox', 'required'=>'false', 'label'=>'Shop Category','class'=>'col-md-12','selected'=>[1,3]]); ?>

Опитах също да изпратя $catSel като

Array ( [0] => A [1] => C )

Нищо от това не работи. Не знам защо. Не успях да намеря никакво решение за това никъде, освен набора „избрани“ като масив от селекции. Всяка помощ ще бъде оценена.


person KVNam    schedule 11.03.2015    source източник


Отговори (1)


Опцията вече не се нарича selected, а val. Изглежда като < strong>готварската книга е малко остаряла за тази, но е показана правилно в документите за API.

Също така имайте предвид, че трябва да използвате действителните ключове на опциите, които искате да бъдат избрани, т.е. във вашия случай трябва да използвате последния от вашите примери и да подадете низовете A и C.

person ndm    schedule 11.03.2015
comment
Изпратих заявка за изтегляне и промених думата в описанието на value вместо на selected. Също така е добавен пример за това как да зададете ключовете като масив, когато е включено множество. Вижте този PR github.com/cakephp/docs/pull/2521 - person Kim Stacks; 22.03.2015