0
我試圖保存同一個實體的多行,但我無法創建表單。Cakephp 3從表單創建多個實體的行
所以..這是我的控制器:CuotasController
$cuotas = array();
$date = Time::create($inicioPago->year, $inicioPago->month, $inicioPago->day);
$meses = 0;
while ($date < $finPago) {
$cuota = $this->Cuotas->newEntity();
$cuota->vencimiento = $date;
array_push($cuotas, $cuota);
$date = Time::create($date->year, $date->month + 1, $date->day);
$meses = $meses + 1;
}
基本上,在此代碼我生成Cuotas(我的實體)的陣列,並且所述動態填入該數組。
所以這裏的形式:
<?= $this->Form->create($cuotas) ?>
<?php foreach ($cuotas as $cuota): ?>
<tbody>
<tr>
<td>
<div class="form-group">
<div class="input text required">
<?php echo $this->Form->input('vencimiento', ['required' => true, ['class' => 'form-control'] ]); ?>
</div>
</div>
</td>
<td>
<div class="form-group">
<div class="input text required">
<?php echo $this->Form->input('monto_pesos', ['required' => true, 'class' => 'form-control' ]); ?>
</div>
</div>
</td>
<td>
<div class="form-group">
<div class="input text required">
<?php echo $this->Form->input('monto_dolares', ['required' => true, 'class' => 'form-control' ]); ?>
</div>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?= $this->Html->link(__('Volver'), ['action' => 'index'] , array('class'=>'btn btn-danger', 'style' => 'margin-top:1em')) ?>
<?= $this->Form->button(__('Guardar'), ['class'=>'btn btn-success', 'style' => 'margin-top:1em']) ?>
<?= $this->Form->end() ?>
最後,在控制器,這是我如何努力修補實體:
$entities = $this->Cuotas->newEntities($this->request->data);
你知道我在哪裏搞亂了這一切?
謝謝!
提交表單數據後使用字段名稱標識,在你表單中所有字段名稱都是相同的,請檢查一下,那麼你可以使用不同的名稱作爲不同的字段或使用數組類型名稱, 然後提交後你必須格式化那些數據存入一組數組$ data = [[],[],[],[]] 分別包含您的實體數據, 然後您可以使用 $ entities = $ this-> Cuotas-> newEntities ($數據); $ this-> Cuotas-> saveMany($ entities); – ashanrupasinghe