CakePHP 3:在 select 中动态创建选项 |表单助手

CakePHP 3 : dynamically create options in select | Form Helper

我想生成 select 输入字段,例如

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

其中选项是动态生成的。

有一个包含 int 值的 stock 列。我想生成与股票价值一样多的期权。例如:如果 stock 值为 5,则选项将从 15

我可以通过

生成select输入字段
$this->Form->select('quantity', [1,2,3,4,5], ['empty' => 'Quantity'])

但是这里生成的选项长度为5。我希望它根据 stock 列中的值生成。

$arr=[];
for($i = 0;$i<$stock;i++) array_push($arr, $i); 

$this->Form->select('quantity', $arr, ['empty' => 'Quantity'])

你可以使用phprange函数

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

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

首先使用 set 在控制器中设置 $stack 变量值 (简单方法):

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

在您的视图中像这样使用该变量:

$options = range(1,$stack);

 $this->Form->select('dropdown name', $options, ['empty' => 'Quantity'])