我在Zend Framework 2應用程序中添加了模塊ZfcUser。 但我必須使用現有的數據庫表, ,其列名與ZfcUser的默認表結構略有不同。ZF2:ZfcUser模塊的自定義用戶映射器
ZfcUser wiki page它表示如果我的模型不符合提供的接口,則可以使用自定義映射器。 由於我的數據庫表與默認值不同,我的用戶實體類也不同於標準ZfcUser \ Entity \ User的 。但我可以告訴ZfcUser通過重寫文件配置/自動加載/ zfcuser.global.php設置與我自己的類容易 工作:
'user_entity_class' => 'MyApp\Entity\MyUser',
但I`ve沒有找到一個簡單的方法來告訴ZfcUser到到目前爲止使用我的mapper類。
我只發現映射器由ZfcUser \模塊:: getServiceConfig() 建立在其內部,我可以看到映射器從其工廠函數返回:
// ...
public function getServiceConfig()
{
return array(
// ...
'factories' => array(
// ...
'zfcuser_user_mapper' => function ($sm) {
$options = $sm->get('zfcuser_module_options');
$mapper = new Mapper\User();
$mapper->setDbAdapter($sm->get('zfcuser_zend_db_adapter'));
$entityClass = $options->getUserEntityClass();
$mapper->setEntityPrototype(new $entityClass);
$mapper->setHydrator(new Mapper\UserHydrator());
return $mapper;
},
// ...
有沒有一種辦法使ZfcUser使用我的自定義用戶映射類?
非常感謝!我正在尋找相同的信息,並在您的文章的幫助下,我設法重新加載了zfcUser的Entity和Mapper類以用於我的數據庫和實體的擴展功能! – Brock