Я просмотрел документацию и хотел добавить своего собственного провайдера пользователя (просто для понимания дыры)
Класс просто называется Аккаунт и нет пользователя
Я сделал это так, как сказано в документации:
http://symfony.com/doc/current/cookbook/security/entity_provider.html
После звонка
php app/console doctrine:generate:entities BaseBundle/Entity/Account
Методы получения и установки были созданы.
Я редактировал security.yml
файл и посмотрел на интерфейс.
FatalErrorException в строке Account.php 243:
Ошибка разбора: синтаксическая ошибка, неожиданное ‘$’, ожидаемая переменная (T_VARIABLE) ´´
public function set0($0)
{
$this->0 = $0;
return $this;
}
Почему это создается доктриной?
Там не было переменной «0»
Когда я удаляю геттер и сеттер для 0, появляется новая ошибка:
Property Runalyze\BaseBundle\Entity\Account::$0 does not exist
Я думаю, что в этом контексте 0 приходит, когда я не аутентифицирован?
Просто начинаю с symfony2 и хотел бы это понять.
Что я не прав?
Рабочая версия Symfony — 2.6.
За последнюю «ошибку» трассировки стека
at ReflectionProperty ->__construct ('Runalyze\BaseBundle\Entity\Account', '0')
in vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php at line 82
at RuntimeReflectionService ->getAccessibleProperty ('Runalyze\BaseBundle\Entity\Account', '0')
in vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php at line 893
at ClassMetadataInfo ->wakeupReflection (object(RuntimeReflectionService))
in vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php at line 537
Свойства класса
// Runalyze / BaseBundle / Entity / Account.php
пространство имен Runalyze \ BaseBundle \ Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* @ORM\Table(name="app_account")
* @ORM\Entity(repositoryClass="Runalyze\BaseBundle\Entity\AccountRepository")
*/
class Account implements UserInterface, \Serializable
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=25, unique=true)
*/
private $username;
/**
* @ORM\Column(type="string", length=64)
*/
private $password;
/**
* @ORM\Column(type="string", length=60, unique=true)
*/
private $email;
/**
* @ORM\Column(name="is_active", type="boolean")
*/
private $isActive;
Хорошо, я не знаю, как это случилось, но:
Я нашел файл Resources/config/doctrine/Account.orm.yml
Я не знаю, когда это было сгенерировано, но было поле «0».
Я удалил файл и снова запустил генерацию геттера и сеттера.
Это работало нормально.
Но спасибо @Andariel за попытку найти мою ошибку!
Других решений пока нет …