Cakephp habtm сохранение данных - PullRequest
2 голосов
/ 14 июня 2011

Добрый вечер.

Mabye Я слепой, но не могу найти решение этой проблемы: у меня есть 2 модели, Post и Tag с полями post_text и tag_name, где Post habtm Tag.

Теперь у меня есть форма, в которую я ввожу post_text и пару тэгов.И я хотел бы сохранить каждый из этих тегов, сохранить их уникальными (поэтому, если тег уже находится в БД, не сохраняйте его, просто получите его идентификатор), затем сохраните сообщение и, наконец, свяжите сообщение с тегами.через стол posts_tags.

Теперь все говорят мне: оставь это на Cake, он может сделать всю эту работу за тебя!Хорошо, я бы с удовольствием, но как должен выглядеть мой массив $ this-> data?

Я пытаюсь использовать Tag.tag_name, Post.Tag.tag_name, Post.Tag.0.tag_name, Post.PostsTag.0.tag_name, Tag.Tag.tag_name, Post.PostsTag.Tag.0.tag_name, ...

Я пытаюсь сохранить (), saveAll (), ... ничего не работает.И все примеры в Интернете (включая Cake Book) работают с идентификаторами тегов, а не с именами тегов.

Есть ли способ (я имею в виду $ this-> data array form), который я могу опубликовать в $this-> Post-> save () или saveAll (), и он сделает всю магию для меня?

Большое спасибо.

Josh.T.

1 Ответ

0 голосов
/ 16 июля 2011

Боюсь, что вам придется написать метод saveUnique () самостоятельно, кто-то может исправить меня, но я не думаю, что автоматика торта заходит так далеко.

В основном вам придется проверять каждый тег, если он существует, записывать идентификаторы в массив, в противном случае сделать это и получить идентификаторы. Затем в значительной степени сохраните этот массив как стандартный habtm с оригинальным сообщением.

Возможно, стоит даже использовать некоторую форму автозаполнения в форме добавления, чтобы получить уже существующие теги, а затем создать только несуществующие теги, а затем сохранить их + отношение habtm.

...