Как отобразить несколько значений, выбранных в выпадающем списке в торт php 3.x на странице редактирования - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть связь между двумя таблицами отступов и тендеров в моем приложении. На странице редактирования множественное выделенное значение не отображается как выбранное поле множественного выбора:

multi-select box

Если выбранный элемент имеет только одно значение, он выбирает параметр, но если выбранный элемент имеет более одного значения, тогда он не выбирает никакого значения.

Контроллер:

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();  ?>
...