Я новичок в Symfony4. У меня проблема со значением, указанным в таблице. Я слежу за документацией Symfony. Я хочу сохранить переменную пользователя email и codeinvitations в таблице приглашений, но это вызывает ошибку.
Пожалуйста, помогите мне решить мои проблемы.
Это мои объекты
Приложение / Entity / User. php
class User implements UserInterface, \Serializable
{
(...)
/**
* @ORM\Column(type="string", length=255, unique=true)
* @ORM\OneToMany(targetEntity="App\Entity\Invitacion", mappedBy="user")
*/
private $email;
/**
* @ORM\Column(type="string", length=255, unique=true)
* @ORM\OneToMany(targetEntity="App\Entity\Invitacion", mappedBy="user")
*/
private $codeinvitaciones;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Invitacion", mappedBy="user")
*/
private $invitaciones;
/**
* User constructor
*/
public function __construct()
{
$this->invitaciones = new ArrayCollection();
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
public function getCodeinvitaciones(): ?string
{
return $this->codeinvitaciones;
}
public function setCodeinvitaciones(string $codeinvitaciones): self
{
$this->codeinvitaciones = $codeinvitaciones;
return $this;
}
/**
* @return Collection|Invitacion[]
*/
public function getInvitaciones(): Collection
{
return $this->invitaciones;
}
public function addInvitaciones(Invitacion $invitacion): self
{
if (!$this->invitaciones->contains($invitacion)) {
$this->invitaciones[] = $invitacion;
$invitacion->setCodeinvitaciones($this);
}
return $this;
}
}
App / Entity / Invitacion. php
class Invitacion
{
(...)
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="email")
* @ORM\JoinColumn(nullable=false)
*/
private $email;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="invitaciones")
* @ORM\JoinColumn(nullable=false)
*/
private $codeinvitaciones;
public function getId(): ?int
{
return $this->id;
}
public function getEmail(): ?User
{
return $this->email;
}
public function setEmail(?User $email): self
{
$this->email = $email;
return $this;
}
public function getCodeinvitaciones(): ?User
{
return $this->codeinvitaciones;
}
public function setCodeinvitaciones(User $codeinvitaciones): self
{
$this->codeinvitaciones = $codeinvitaciones;
return $this;
}
}
В Контроллере я создаю пользователя при регистрации в форме. В то же время я сохраняю email и переменную codeinvitations в таблице приглашение , но это дает мне ошибку.
Контроллер
(...)
$invitacion->setEmail($email);
$invitacion->setCodeinvitaciones($registroInv);
ОШИБКА
Argument 1 passed to App\Entity\Invitacion::setEmail() must be an instance of App\Entity\User or null,
string given, called in C:\Users\adria\Documents\app\bebeBB\src\Controller\UserController.php on line 38
спасибо
---------- ---- РЕДАКТИРОВАТЬ -----------
Я уже пробовал передать Invitacion::setEmail(?string)
, но он дает эту ошибку:
Expected value of type "App\Entity\User" for association field
"App\Entity\Invitacion#$codeinvitaciones", got "string" instead.