首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Symfony - Doctrine类型数组

Symfony - Doctrine类型数组
EN

Stack Overflow用户
提问于 2018-06-05 16:20:02
回答 1查看 464关注 0票数 -2

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

无法将数据库值"“转换为规则类型数组

问题出在$card字段上。

代码语言:javascript
复制
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发送参数时,我得到了我提到的错误。

EN

回答 1

Stack Overflow用户

发布于 2018-06-05 16:29:59

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

代码语言:javascript
复制
# 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 console命令:

代码语言:javascript
复制
php bin/console doctrine:generate:entities AppBundle:Card
php bin/console doctrine:generate:entities AppBundle:User

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50695406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档