У меня есть связь между двумя таблицами отступов и тендеров в моем приложении. На странице редактирования множественное выделенное значение не отображается как выбранное поле множественного выбора:
Если выбранный элемент имеет только одно значение, он выбирает параметр, но если выбранный элемент имеет более одного значения, тогда он не выбирает никакого значения.
Контроллер:
public function edit($id = null)
{
$tender = $this->Tenders->get($id);
$this->set(compact('tender'));
if ($this->request->is(['post', 'put','patch'])) {
if(!empty($this->request->data['indent_id'])) {
$this->request->data['indent_id'] =
@implode(",", $this->request->data['indent_id']);
}
$this->Tenders->patchEntity($tender, $this->request->data);
if ($this->Tenders->save($tender)) {
$this->Flash->success(__('Tender has been updated successfully.'));
return $this->redirect(['action' => 'index']);
}
$this->Flash->error(__('Unable to update Tender.'));
}
$this->set('tender', $tender);
$indents = $this->loadModel('Indents');
$query = $indents
->find('all')
->order(['indent_no' => 'ASC']);
$this->set('indents', $query);
}
Страница моего просмотра:
<?php echo $this->Form->create($tender, ['enctype' => 'multipart/form-data']); ?>
<div class="form-group">
<div class="controls">
<label>Indent No</label>
<?php foreach ($indents as $indent): ?>
<?php $finalArray[$indent->id] = $indent->indent_no; ?>
<?php endforeach; ?>
<?php $IndentID = $tender->indent_id; ?>
<?php
echo $this->Form->select('indent_id', $finalArray, [
'type' => 'select',
'class' => 'form-control',
'multiple' => true,
'selected' => true,
'value' => [$IndentID]
]);
?>
</div>
</div>
<button type="submit" class="">Save</button>
<?php echo $this->Form->end(); ?>