Множественный выбор на входе 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()