Я пробовал Symfony 4 "для развлечения". И для этого я пытаюсь переписать старый сайт без фреймворка на данный момент с помощью Symfony 4.
Для этого я настраиваю свое приложение в своей базе данных с существующими данными. И я бы сделал форму входа.
НО на моем классе пользователей у меня есть некоторые проблемы, которые вызывают у меня проблемы.
См. Аннотации класса моего пользователя:
/**
* Utilisateur
*
* @ORM\Table(name = "utilisateur", uniqueConstraints = {@ORM\UniqueConstraint(name = "mail", columns = {"mail"})}, indexes = {@ORM\Index(name = "FK_UTILISATEUR_idDroit", columns = {"idDroit"})})
* @ORM\Entity
*/
и моя структура пользователя:
idutilisateur
nom
prenom
mail
password
dateinscription
datevalidation
token
iddroit
plainPassword
Как видите, я создаю iddroit как внешний ключ таблицы droit. Доктрина создала свойство как
/**
* @var Droit
*
* @ORM\ManyToOne(targetEntity = "Droit")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name = "idDroit", referencedColumnName = "idDroit")
* })
*/
private $iddroit;
И создал геттер как
public function getIddroit(): Droit
{
return $this->iddroit;
}
И после того, как проследили документацию о регистрации / входе в систему, отладчик ответит =>
Return value of App\Entity\Utilisateur::getIddroit() must be an instance of App\Entity\Droit, null returned
Итак, я полагаю, ему нужен объект, а не просто идентификатор, даже если в аннотации он создает правила соединения. Какие-нибудь удостоверения личности, что случилось?
И я понимаю, что нужно вернуть объект, но не знаю, как это вернуть.
Если есть предложения.
Спасибо ребята ;)
Лоран
Если iddroit может быть пустым, т.е. допускающим значение NULL, вы можете изменить тип возвращаемого значения на «? Droit».






Может ли организация Utilisateur не иметь Дройта? Если да, вам следует изменить тип возвращаемого значения getIddroit и тело функции для обработки нулевого случая.