CakePHP 3: динамически создавать параметры в select | Помощник по формам

Я хочу создать поле ввода select, например

<select name="quantity">
  <option value="">Quantity</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

где опция генерируется динамически.

Существует столбец stock, который содержит значение int. Я хочу генерировать опционы так же, как стоимость на складе. Пример: если значение stock равно 5, тогда вариант будет от 1 до 5.

Я могу создать поле выбора ввода с помощью

$this->Form->select('quantity', [1,2,3,4,5], ['empty' => 'Quantity'])

Но тут вариантов будет 5 длин. Я хочу, чтобы он был сгенерирован в соответствии со значением в столбце stock.


person Anuj TBE    schedule 11.07.2016    source источник


Ответы (2)


Сначала установите значение переменной $stack в контроллере, используя set (простой способ):

 $this->set('stack', $stack);

используйте эту переменную следующим образом:

$options = range(1,$stack);

 $this->Form->select('dropdown name', $options, ['empty' => 'Quantity'])
person Pradeep    schedule 11.07.2016
comment
Спасибо @pradeep, но здесь есть проблема... присваиваемое значение начинается с 0 и далее, например <option value="0">1</option>. Я хочу присвоить значение от 1 <option value="1">1</option> - person Anuj TBE; 20.07.2016
comment
используйте это › $options = range(0,$stack); сбросить ($ параметры [0]); затем используйте $options - person Pradeep; 20.07.2016

вы можете использовать функцию php range

$options = array_combine(range(1, $stock), range(1, $stock));

$this->Form->select('quantity', $options, ['empty' => 'Quantity'])
person arilia    schedule 11.07.2016