我查看了想要添加自己的用户提供程序的文档(只是为了解洞内容) 类叫做帐户而没有用户
所以我就像文件说的那样做了: http://symfony.com/doc/current/cookbook/security/entity_provider.html
打电话后
php app/console doctrine:generate:entities BaseBundle/Entity/Account
创建了getter和setter方法。
我编辑了security.yml
文件并查看了界面。
Account.php第243行中的FatalErrorException:
解析错误:语法错误,意外的'$',期望变量(T_VARIABLE)''
public function set0($0)
{
$this->0 = $0;
return $this;
}
为什么这是由Doctrine生成的? 没有变量“0”
当我将getter和setter删除为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;
答案 0 :(得分:1)
好的,我不知道是怎么回事,但是:
我找到了一个文件Resources/config/doctrine/Account.orm.yml
我不知道什么时候生成这个,但是有一个“0”字段。
我删除了文件并再次运行getter和setter的生成。
这很好。
但感谢@Andariel试图找到我的错误!