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

symfony - Дополнительное поле в автоматически созданной форме модели

У меня в приложении 3 таблицы. - event, event_category и event_category_connection. Это отношение «многие ко многим» между двумя первыми таблицами. Я пытаюсь добавить sfWidgetFormDoctrineChoice с категориями в EventForm (который автоматически создается через Symfony - модель доктрины), чтобы после сохранения события я мог автоматически добавлять связь между новым событием и уже существующими категориями.

$this->widgetSchema['event_category_id'] = new sfWidgetFormDoctrineChoice(array(
  'model' => 'EventCategory', 
  'add_empty' => false, 
  'multiple'=>"true",
  'expanded'=>true));
$this->setValidator('event_category_id', new sfValidatorDoctrineChoice(array(
  'model' => 'EventCategory', 
  'required' => false)));

Это то, что я добавил в автогенерированный EventForm. Насколько я понимаю, во время операции создания новый объект сохраняется с помощью функции $form->getObject()->save(). Это место, где я получаю сообщение об ошибке (Неизвестное свойство записи / связанный компонент).

Любое предложение, как я могу справиться с этой операцией. Вот что я пытаюсь кодировать:

В одном действии -> сохранить объект -> получить идентификатор нового объекта -> сохранить отношение многих ко многим между категориями и новым объектом.

Krzycho.

13.11.2011

  • Можете ли вы опубликовать свое событие схемы, event_cetegory и event_category_connection? 13.11.2011

Ответы:


1

Сначала вам нужно сделать $form->save(), затем вы сохраните свои отношения (это один из подходов, вероятно, есть много способов добраться до него):

  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {    
      $obj = $form->save();

      $this->saveRelations($request, $obj);
      // save the event_category objects in an array: $event_categories
      // $obj->EventCategory = $event_categories;
      // $obj->save();
    }
    // ...
  }
14.11.2011
Новые материалы

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

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

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

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

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

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

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