Хобрук: Ваш путь к мастерству в программировании

Тип поля сущности symfony2

У меня есть раскрывающееся поле (город), я добавляю это поле в UserType

$builder->add('name', 'text', array('label' => 'form.name', 'translation_domain' => 'FOSUserBundle'));
$builder->add('phone', 'text', array('label' => 'form.phone', 'translation_domain' => 'FOSUserBundle'));
$builder->add('cityId', 'entity', array(
    'label' => 'form.city', 
    'translation_domain' => 'FOSUserBundle',
    'class' => 'AppBundle:City',
    // 'choice_label' => 'name',
    // 'choice_value' => 'id',
));

Но когда я отправляю форму, поле cityId отправляет мне название города, а не идентификатор. Как я могу это исправить?

15.10.2015

  • Используете ли вы $form-›handleRequest() в своем контроллере? Тогда вы получите не название города, а объект, представляющий город. Вот что такое тип поля сущности. 15.10.2015

Ответы:


1

Я думаю, что поле свойства может вам помочь :) В форме вы должны добавить свойство => имя

$builder->add('cityId', 'entity', array(
    'label' => 'form.city', 
    'translation_domain' => 'FOSUserBundle',
    'class' => 'AppBundle:City',
    'property' => 'name',
));

Или в вашей сущности напишите функцию toString, например

$builder->add('cityId', 'entity', array(
    'label' => 'form.city', 
    'translation_domain' => 'FOSUserBundle',
    'class' => 'AppBundle:City',
    // toString() function called
));

Город.php

public function __toString()
{
    return $this->name;
}
16.10.2015
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..