按用户界面学说生成的实体在 symfony2 中似乎是错误的
Generated entities by doctrine for User Interface seems wrong in symfony2
我浏览了文档并想添加我自己的用户提供程序(只是为了了解漏洞)
Class 刚刚调用了帐户,没有调用用户
所以我按照文档所说的那样做了:
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([=10=])
{
$this->0 = [=10=];
return $this;
}
为什么这是Doctrine生成的?
没有变量“0”
当我为 0 删除 getter 和 setter 时,新错误是:
Property Runalyze\BaseBundle\Entity\Account::[=14=] does not exist
我认为在这种情况下,当我未通过身份验证时,0 会出现吗?
刚开始接触 symfony2,想了解这一点。
我做错了什么?
运行 symfony 版本是 2.6
最后一个 "error" 堆栈跟踪
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
Class 属性
// 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”字段。
我删除了文件和 运行 生成的 getter 和 setter 再次。
这很好用。
但感谢@Andariel 试图找出我的错误!
我浏览了文档并想添加我自己的用户提供程序(只是为了了解漏洞) Class 刚刚调用了帐户,没有调用用户
所以我按照文档所说的那样做了: 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([=10=])
{
$this->0 = [=10=];
return $this;
}
为什么这是Doctrine生成的? 没有变量“0”
当我为 0 删除 getter 和 setter 时,新错误是:
Property Runalyze\BaseBundle\Entity\Account::[=14=] does not exist
我认为在这种情况下,当我未通过身份验证时,0 会出现吗?
刚开始接触 symfony2,想了解这一点。 我做错了什么? 运行 symfony 版本是 2.6
最后一个 "error" 堆栈跟踪
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
Class 属性 // 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”字段。
我删除了文件和 运行 生成的 getter 和 setter 再次。
这很好用。
但感谢@Andariel 试图找出我的错误!