我正在尝试让我的用户身份验证从数据库中工作。我已按照说明书中的说明设置了一个用户实体。我的包已在 appKernel 中注册,并且我之前使用过该包。唯一改变的是新的 Entity\User.php 和 security.yml 中的更改。我确信这很愚蠢,但对于我的生活,我无法弄清楚我做错了什么。当我执行 cache:clear 时,我得到以下信息:
浏览到 app_dev.php 时:
从 app\src\MyFreelancer\PortalBundle\Entity\User.php 提取
<?php
namespace MyFreelancer\PortalBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\Criteria;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
use JMS\Serializer\Annotation as Ser;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Security\Core\User\Role;
use Symfony\Component\Security\Core\User\AdvancedUserInterface;
/**
* User
*
* @ORM\Entity
* @ORM\Table(name="users")
* @Ser\ExclusionPolicy("all")
*/
class User implements AdvancedUserInterface, \Serializable
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @Ser\Expose
*/
private $id;
...
从 security.yml 中提取(导致问题):
providers:
main:
entity:
class: MyFreelancer\PortalBundle\Entity\User,
property: username
可以看到,实体存在于正确的文件结构中,命名空间定义在实体文件中,类定义为实体并注册了Bundle。我不知道我错过了什么。