【发布时间】:2014-09-23 14:57:31
【问题描述】:
我正在开发我的第一个 Zend Framework 2 项目。我已经在我的项目中实现了 ZfcUser,并且由于我的数据库表中的列略有不同,我想从 ZfcUser 覆盖用户映射器。我已经在 Internet 和此处进行了搜索,但没有得到有效的解决方案。我不得不承认我找到的解决方案是从 2012 年开始的 (ZF2: Custom user mapper for ZfcUser module),所以在此期间可能发生了一些变化。
那么到目前为止我做了什么。我创建了自己的用户实体。如果我理解正确,那么它需要扩展 ZfcUser,我已经这样做了:
模块/Application/src/Entity/User.php
namespace Application\Entity;
use Doctrine\ORM\Mapping as ORM;
use ZfcUser\Entity\User as ZfcUser;
/**
* User
*
* @ORM\Table(name="user")
* @ORM\Entity
*/
class User extends ZfcUser
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="username", type="string", length=255, nullable=false)
*/
protected $username;
然后我复制了 zfcuser.global.php 并将其移动到文件夹 config/autoload/zfcuser.global.php
在这个文件中,我激活了 'user_entity_class' => 'Application\Entity\User', 我希望到目前为止这是正确的。
现在我需要自己的 UserMapper。据我了解,这无法通过配置文件完成。我将文件夹“Mapper”及其所有文件从 zfc-user/src/ZfcUser/Mapper 复制到我的应用程序模块中。我从所有文件中更改了命名空间。现在我很困惑我还需要复制什么,服务和/或工厂文件夹?我在哪里以及如何告诉我的应用程序使用我自己的 Mapper 而不是 ZfcUser?我只是不明白,希望有人能给我一些帮助。非常感谢您!
【问题讨论】:
标签: php zend-framework2