У меня есть виджет, определенный серией флажков, который по существу используется для создания битового флага. Таким образом, у меня есть столбец БД «access_bits», и у меня есть несколько флажков, сгенерированных в классе формы в формате «access_bits []», с соответствующими значениями (то есть 1,2,16,1024 и т. Д.)
после решения этого поста ( Symfony: Как изменить атрибут поля формы в действии? ) - что просто и разумно - я могу волшебным образом установить атрибут для все флажки. Но как я могу ориентироваться на конкретные (желательно по значению)?
ДЛЯ УТОЧНЕНИЯ:
HTML:
<input name="user[access_bit][]" value="1" /> Level 1
<input name="user[access_bit][]" value="2" /> Level 2
<input name="user[access_bit][]" value="4" /> Level 3
<input name="user[access_bit][]" value="8" /> Level 4
В БД у меня есть столбец с побитовым целым числом. Так, например, чтобы проверить уровень 1 и уровень 2, значение в столбце будет равно 3. Чтобы проверить их все, значение будет равно 15.
PHP "Что я хочу" в action.class.php
$exampleValue = 4;
foreach ($form->getWidget('access_bit') as $thisWidget)
{
if ($thisWidget->getValue() == $exampleValue)
{
$thisWidget->setAttribute('checked','checked');
}
}
... который бы хитро поставил флажок рядом с уровнем 3 как отмеченный.
Я не хочу использовать jQuery для этого.