Я как бы новичок с CakePHP. У меня есть две таблицы: контакты и теги, таблица HABTM contacts_tags. Пользователь должен иметь возможность добавлять теги, которые люди могут делать на delicious.com. они получают список тегов по мере их ввода. Они также могут добавлять новые теги, просто набрав их. Я хочу проверить таблицу тегов, чтобы увидеть, какие теги уже присутствуют, а какие нет. Теги, которые являются новыми, должны быть добавлены в таблицу, а идентификаторы вставки добавляются к массиву. Затем я хочу использовать эти теги идентификаторов для обновления таблицы contacts_tags. Вот и все. Эти две функции я создал:Как обновить соединение в CakePHP, вручную
/**
this function checks for existing tags and creates new tags
@params string (of comma separated tags)
@return array (of IDs)
**/
function saveAndCreateTags($tags){
$tags = explode(",", $tags); //create array of tags
$idArray = array();
foreach($tags as $tag) {
$count = $this->find('count', array('conditions' => array('name' => $tag)));
if($count === 0) {
$this->create();
if($this->save($tag)) {
$idArray[] = $this->getInsertID();
}
}
else {
$idArray[] = $this->getID();
}
}
return $idArray;
}
/**
this function updates the relational table
@params array (this array is returned by saveAndCreateTags function
@params int (id of the contact)
**/
function updateContactTagsTable($idArray, $contactId){
foreach($idArray as $tagId) {
$count = $this->ContactTag->hasAny(array('tag_id' => $tagId, 'contact_id' => $contactId));
if($count === 0) {
();
$this->ContactTag->save(array('contact_id' => $contactId, 'tag_id' => $tagId));
}
}
}
Ни один из $ this-> ContactTag-> hasAny, $ this-> ContactTag-> создать, $ this-> ContactTag-> сохранить работает ... Am Я чего-то не хватает?
К сожалению, не мог получить ручку, где проблема, точно. Если вы пытаетесь сохранить связанные данные модели, вам может понадобиться изучить метод Model :: saveAll(), а не Model :: save(). –