2014-01-24 6 views
0

Я получил List и Item. Я использую Javascript для динамического добавления Iteminput, чтобы добавить несколько из них в один List. Что такое name, какой вход должен иметь, или как CakePHP создает отношения HABTM таким образом?CakePHP добавить несколько HABTM

EDIT: Так что я прочитал, что способ сделать это, чтобы назвать мое Item вход как Item.0.id, Item.1.id и т.д.

Поскольку я использую JavaScript, я не вижу, как я мог сделайте входы с помощью $this->Form->input('Item.0.id'); динамически, нажав кнопку, могу ли я получить некоторые предложения?

+0

Возможно, мой вопрос поможет вам http://stackoverflow.com/questions/15937068/trying-to-save-a-hasmany-array-from-multiple-select –

+0

Я не понимаю. Каждый элемент, добавленный динамически, должен быть назван Item.0.id? –

ответ

0

HABTM отношения сохраняются с числовым массивом идентификаторов

Так что ваши входы должны быть Item.0 и Item.1 с идентификаторами в качестве значения.

Чтобы сделать это динамически с помощью Javascript вы должны создать вход самостоятельно, что не трудно CakePHP просто использует имя «данных [Model] [ключ]»

Вот пример:

var index = 0; 

$('buttonToClick').on('click', function(){ 
    var stringInput = '<input class="itemInput" name="data[Item][' + index + ']"/>'; 
    $('itemInput:last-child').after(stringInput); 
}); 
+0

Просто понял, что вы, вероятно, используете для этого список выбора, поэтому вам, вероятно, нужно будет сгенерировать первый с помощью FormHelper, затем использовать метод клонирования jQuery для его копирования, изменить атрибут имени и затем поместить его после текущего. – user2414000