Symfony - массив типов доктрины

У меня проблема с моей формой, и проблема с моей сущностью. У меня ошибка:

Could not convert database value "" to Doctrine Type array

а проблема с полем $card.

public function addNewUser ($id, $firstName, $lastName)
{
    $termUsers = $this->getUserRepository()
        ->createQueryBuilder('nu')
        ->select('nu')
        ->where('nu.id = :id')
        ->setParameter('id', $id)
        ->setMaxResults(1)
        ->getQuery()
        ->getOneOrNullResult();

    if (empty($termUsers)) {
        $termUsers = new User();
        $termUsers->setId($id);
        $termUsers->setFirstName($firstName);
        $termUsers->setLastName($lastName);
        $this->em->persist($termUsers);
        $this->em->flush();
    }

    return $termUsers;
}

public function getUserAddAction()
{
    $this->requirePostParams(['id', 'firstName', 'lastName']);

    $this->get('lottoland.user')->addNewUser(
        $this->data['id'],
        $this->data['firstName'],
        $this->data['lastName']
    );

    return $this->success();
}

Когда я отправляю сообщения через почтальона, я получил указанную мной ошибку.

код, который вы здесь показываете, не имеет отношения к вашей проблеме. Пожалуйста, вставьте сюда соответствующий код

Greco Jonathan 05.06.2018 10:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
441
1

Ответы 1

Если вы хотите иметь отношение oneToMany между Card и User, тогда:

# Entity/Card.php
/**
 * @ORM\OneToMany(targetEntity = "User", mappedBy = "card")
 */
private $users;

public function __construct() 
{
    $this->users = new ArrayCollection();
}


# Entity/User.php
/**
 * @ORM\ManyToOne(targetEntity = "Card", inversedBy = "users")
 * @ORM\JoinColumn(name = "card_id", referencedColumnName = "id", nullable=false)
 */
private $card;

Что касается новичков, более удобный способ создать такие отношения, просто объявите отношение, как я сделал выше, а затем, чтобы сгенерировать геттеры и сеттеры, используйте удобную консольную команду symfony:

php bin/console doctrine:generate:entities AppBundle:Card
php bin/console doctrine:generate:entities AppBundle:User

и это сгенерирует для вас все необходимые методы.

Я знаю об этом, у меня проблема с этой ошибкой. --- Не удалось преобразовать значение базы данных "" в массив типа доктрины ---

Филип Стојановић 05.06.2018 10:34

Другие вопросы по теме