Symfony - Doctrine Type数组

问题描述 投票:-2回答:1

我的表单有问题,问题出在我的实体上。我收到一个错误:

无法将数据库值“”转换为Doctrine Type数组

问题出在$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();
}

当我通过Postman发送parms时,我得到了我提到的错误。

php symfony entity
1个回答
0
投票

如果你想在CardUser之间建立一个oneToMany关系,那么:

# 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;

至于初学者,创建这种关系的更方便的方法,只需按照我上面的方式声明关系,然后,生成getter和setter,使用方便的symfony控制台命令:

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

这将为您生成所有需要的方法。

© www.soinside.com 2019 - 2024. All rights reserved.