我想在symfony 4中使用manytoone。
这是我的搜索实体,
<?php
namespace App\Entity;
use App\Model\BaseCar;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
use Swagger\Annotations as SWG;
use JMS\Serializer\Annotation\Groups;
/**
* @ORM\Entity(repositoryClass="App\Repository\CarRepository")
* @ORM\Table(name="search")
* @UniqueEntity("id")
*/
class Search extends BaseCar
{
/**
* @ORM\ManyToOne(targetEntity="App\Entity\AdminUser",cascade={"refresh","merge"}, inversedBy="search")
* @ORM\JoinColumn(nullable=false)
*/
protected $user;
public function getUser()
{
return $this->user;
}
public function setUser($user)
{
$this->user = $user;
return $this;
}
}
这是我的管理员实体。
<?php
namespace App\Entity;
use App\Model\BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="App\Repository\AdminUserRepository")
* @UniqueEntity("username")
*/
class AdminUser extends BaseUser
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
protected $id;
/**
* @Assert\Email
* @ORM\Column(type="string", length=190, unique=true)
*/
protected $username;
/**
* @ORM\Column(type="string", length=190)
*/
protected $password;
/**
* @ORM\Column(type="string", length=190, nullable=true)
*/
protected $salt;
/**
* @ORM\Column(type="array")
*/
protected $roles;
/**
* @ORM\Column(type="string", length=190)
*/
protected $displayName;
/**
* @ORM\Column(type="string", length=190, nullable=true)
*/
protected $token;
/**
* @ORM\Column(type="string", length=190, nullable=true)
*/
protected $phoneNumber;
/**
* AdminUser constructor.
*/
public function __construct($username = null, array $roles = array(self::ROLE_ADMIN) , $password = null,$displayName=null,$phoneNumber = null, $salt=null)
{
parent::__construct($username, $roles,$password,$displayName,$phoneNumber, $salt);
}
}
当我尝试这个的时候,
$entityManager = $this->getDoctrine()->getManager();
$search = new Search();
$search->setType('jhkh');
$search->setUser(1);
$entityManager->persist($search);
$entityManager->flush();
但是我得到了这个错误,
关联字段应为“app\entity\adminuser”类型的值
“app\entity\search$user”,改为“integer”。