Исключение для сопоставления продукции Symfony FOSUserBundle
Я искал в stackoverflow свою проблему, но не нашел ответа на свою проблему.
В настоящее время я развертываю свой проект symfony на своем сервере Debian под управлением PHP 5.6.26 в соответствии с документацией на веб-сайте symfony.
Когда я выполнил команду для установки моих пакетов, выполнив команду
composer install --no-dev --optimize-autoloader
Я получаю следующую ошибку:
[Доктрина\ORM\Сопоставление\Исключение сопоставления] Подкласс класса "AppBundle\Сущность\Пользователь" класс "FOS\UserBundle\Модель\Пользователь" не является допустимой сущностью или сопоставленным суперклассом.
У меня нет этой ошибки на моих компьютерах разработки (рабочий стол Windows 10 и Macbook)
В настоящее время я понятия не имею, что может быть не так. Я переключился с аннотации на yml позже в проекте.
Мой User.php
файл:
<?php
namespace AppBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
/**
* User
*/
class User extends BaseUser
{
public function __construct()
{
parent::__construct();
}
protected $id;
/**
* @var \AppBundle\Entity\Address
*/
private $address;
/**
* Set address
*
* @param \AppBundle\Entity\Address $address
*
* @return User
*/
public function setAddress(\AppBundle\Entity\Address $address = null)
{
$this->address = $address;
return $this;
}
/**
* Get address
*
* @return \AppBundle\Entity\Address
*/
public function getAddress()
{
return $this->address;
}
}
И мой файл User.orm.yml:
AppBundle\Entity\User:
type: entity
table: user
repositoryClass: AppBundle\Repository\UserRepository
id:
id:
type: integer
id: true
generator:
strategy: AUTO
lifecycleCallbacks: { }
oneToOne:
address:
targetEntity: AppBundle\Entity\Address
cascade: ["persist", "remove"]
2 answers
Я не уверен на 100%, но я вижу здесь примечание , что user
является зарезервированным ключевым словом SQL, и вам может потребоваться изменить ваш файл src/AppBundle/Resources/config/doctrine/User.orm.yml
следующим образом:
AppBundle\Entity\User:
type: entity
table: fos_user
Не могли бы вы попробовать и посмотреть, сработает ли это? Хотя я не уверен - но попробуйте.
Увидев ответ Элвина Бунка, я увидел, что в его ответе ресурсы папки (в src/AppBundle) были заглавными буквами. После проверки ресурсы моей папки не были заглавными буквами.
Мое исправление: Заглавные буквы в папке Ресурсы в src/AppBundle/