关联字段 "App\Entity\Search#$user" 类型 "App\Entity\AdminUser" 的预期值,得到的是 "integer"

Expected value of type "App\Entity\AdminUser" for association field "App\Entity\Search#$user", got "integer" instead

我正在尝试在 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;
    }
}

这是我的 AdminUser 实体。

<?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();

但我却收到了这个错误,

Expected value of type "App\Entity\AdminUser" for association field "App\Entity\Search#$user", got "integer" instead.

你可以试试

$user = $entityManager->getRepository(AdminUser::class)->find(1);
$search->setUser($user);