【发布时间】:2019-10-18 09:17:39
【问题描述】:
我正在使用 DataFixtures 和 phpunit ControllerTest 但是当我使用 phpunit 测试/BankBundle/Controller/BankControllerTest.php 我明白了
Doctrine\ORM\ORMInvalidArgumentException:关联字段“BankBundle\Entity\entry#$user”的类型为“BankBundle\Entity\user”的预期值,改为“integer”。
不知道怎么解决
这是我的 DataFixtures.php
<?php
namespace BankBundle\DataFixtures;
use BankBundle\Entity\entry;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
class BankFixtures implements FixtureInterface
{
public function load(ObjectManager $manager)
{
$bank = new entry();
$bank->setUser(123);
$manager->persist($bank);
$manager->flush();
}
}
实体 entry.php
class entry
{
/**
* @ORM\Id
* @ORM\Column(name="id",type="integer")
* @ORM\GeneratedValue
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="user", inversedBy="id")
*/
private $user;
public function getUser()
{
return $this->user;
}
public function setUser($user)
{
$this->user = $user;
}
}
实体 用户.php
class user
{
/**
* @ORM\Id
* @ORM\Column(name="id",type="integer")
* @ORM\GeneratedValue
*/
private $id;
/**
* @ORM\Column(name="balance",type="integer")
*/
private $balance;
public function getId()
{
return $this->id;
}
public function getBalance()
{
return $this->balance;
}
public function setId($id)
{
$this->id = $id;
}
public function setBalance($balance)
{
$this->balance = $balance;
}
}
【问题讨论】:
标签: php symfony phpunit fixtures