Множественный выбор на входе Cakephp

Когда у меня есть поле ввода с несколькими опциями относительно customer_id, сгенерированный запрос данных

$request-> массив данных, содержащий данные (CompanysCustomer => array('id' => '1', 'uid' => 'fhs32hrqwr8wfsdiof', 'customer_id' => array('0' => '5', '1' => '8', '2' => '9')).

Я не понимаю, как использовать или использовать этот массив. Это работает хорошо, когда я не использую несколько, потому что тогда я не получаю массив в 'customer_id'. У меня есть идея манипулировать массивом и перечислять их и делать предварительные сохранения, но это кажется неэффективным, это должен быть какой-то другой путь?

И у меня возникли проблемы с сохранением этого в БД. Мне удалось сделать это, когда у меня есть одна запись для сохранения. Я не могу сделать так, чтобы сохранить много записей одновременно.

Версия 2.4.1

public function add($id) {
  if ($this->request->is('post')) {
    $this->CompanysCustomer->create();
    if ($this->CompanysCustomer->save($this->request->data)){
      $this->Session->setFlash(__('The Companys Customer has been saved.'));
      return $this->redirect(array('action' => 'index'));
    }
  else{
    $this->Session->setFlash(__('The Companys Customer could not be saved. Please, try    again.'));}
  }

  $customers = $this->CompanysCustomer->Customer->find('list');
  $this->set(compact('customers'));
  }

Модель КомпаниКлиент

  <?php
  App::uses('AppModel', 'Model');
  /**
  * CompanysCustomer Model

  */
  class CompanysCustomer extends AppModel {
    //The Associations below have been created with all possible keys, those that are not needed can be removed

    /**
    * belongsTo associations
    *
    * @var array
    */
    public $belongsTo = array(
        'Company' => array(
            'className' => 'Company',
            'foreignKey' => 'company_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
        'Customer' => array(
            'className' => 'Customer',
            'foreignKey' => 'customer_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );
}

Просмотр: CompanyCustomer\add.ctp

<div class="companysCustomers form">
    <?php echo $this->Form->create('CompanysCustomer'); ?>
    <fieldset>
        <legend><?php echo __('Add Companys Customer'); ?></legend>
        <?php
        $company_id = $id;
        echo $this->Form->input('company_id', array(
            'type' => 'hidden',
            'value' => $id,
        ));
        $uid = uniqid("", $more_entropy = true);
        echo $this->Form->input('uid', array(
            'type' => 'hidden',
            'value' => $uid,
        ));
        //echo $this->Form->input('company_id');
        echo $this->Form->input('customer_id',array('type' => 'select', 'multiple' => 'checkbox','size' => '20'));

        ?>
    </fieldset>
    <?php echo $this->Form->end(__('Submit')); ?>
</div>

1 ответ

Помогает чтение документации http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html

'multiple' => true

например.

Для сохранения использования

saveMany()
Другие вопросы по тегам