Nano Hash - криптовалюты, майнинг, программирование

Cakephp habtm сохранение данных

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

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

Теперь у меня есть форма, в которую я ввожу post_text и пару tag_names. И я хотел бы сохранить каждый из этих тегов, сделать их уникальными (поэтому, если тег уже находится в базе данных, не сохраняйте его, просто получите его идентификатор), затем сохраните сообщение и, наконец, свяжите сообщение с тегами через таблицу 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, ...

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

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

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

Джош Т.


  • AFAIK вы не можете создавать теги таким образом, вам нужно сначала создать теги ... 14.06.2011
  • Что ж, в этом случае я ищу метод saveUnique () в модели тегов, который либо сохранит новый тег, либо прочитает уже сохраненный тег из базы данных и установит идентификатор модели. Так что мне не нужно решать это в контроллере. Создать такой метод несложно, но когда я попытался найти вдохновение, каждому, кто когда-либо задавал этот вопрос, был дан ответ: не делайте этого, используйте функцию Cake по умолчанию. Гы, это замкнутый круг :-) 14.06.2011

Ответы:


1

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

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

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

16.07.2011
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..