2012-05-01 1 views
2

Я использую две модели «User» и «UserImage» .. Где я спасу несколько строк в таблице user_images .. Вид на UserImage ниже ..CakePHP сохранить несколько строк

echo $this->Form->input('UserImage.0.photo'); 
echo $this->Form->input('UserImage.1.photo'); 
echo $this->Form->input('user_id'); 
echo $this->Form->end(__('Submit')); 

Тогда как сэкономить несколько строк ..

+1

Возможно, вам придется опубликовать свои модели, прежде чем кто-нибудь сможет помочь. Кроме того, что вы пробовали? –

ответ

3

вы должны указать модель каждого поля, если у вас есть больше моделей, участвующих. Кроме того, вам нужно указать для каждой записи соответствующее поле (user_id).

Попробуйте это:

echo $this->Form->input('UserImage.0.user_id'); 
echo $this->Form->input('UserImage.1.user_id'); 

Plus использовать эту функцию, чтобы сохранить несколько записей и несколько моделей:

$this->UserImage->saveAll($this->request->data); 
0

См документ CakePHP есть способ сказать SaveAll() Cake PHP Saving Your Data

+0

Нет его не сэкономленного сэра .. –

+0

напишите свой код здесь – Dgo

+0

@Dilip Godhani ваша ссылка больше не работает. – Meer

0

вы могли бы использовать этот один saveMany(), чтобы вставить каждое изображение в новой записи. Я использовал то же самое, чтобы решить мою проблему. Каждая вещь выглядит хорошо в ответе paul.ago «s, но просто изменить SaveAll() для saveMany()

$this->UserImage->saveMany($this->request->data); 
0

Из ЕГО CakePHP 2.x:

Для сохранения нескольких записей одной модели, потребностей $ данных быть численно индексированный массив записей так:

$data = array(
     array('title' => 'title 1'), 
     array('title' => 'title 2'), 
    ); 
$this->saveMany($data); 

Обратите внимание, что мы передаем числовые индексы вместо обычных $ данных, содержащих ключ статьи. При сохранении нескольких записей одной и той же модели массивы записей должны просто индексироваться без ключа модели.

Это также приемлемо, чтобы данные в следующем формате:

$data = array(
     array('Article' => array('title' => 'title 1')), 
     array('Article' => array('title' => 'title 2')), 
    ); 
    $this->saveMany($data); 

Я попробовал первый и он работал большой.

HTH.