Я добавил модуль ZfcUser в мое приложение Zend Framework 2. Но я должен использовать существующую таблицу базы данных, , которая имеет несколько разные имена столбцов, чем структура таблицы по умолчанию для ZfcUser.ZF2: Пользовательский пользовательский картограф для модуля ZfcUser
В ZfcUser wiki page говорится, что можно использовать пользовательский mapper, если моя модель не соответствует предоставленному интерфейсу. И поскольку моя таблица базы данных отличается от значения по умолчанию, мой класс сущности пользователя также отличается от стандартным ZfcUser \ Entity \ User. Но я могу сказать, ZfcUser работать с моим собственным классом легко путем переопределения настройки в файле конфигурации /автозагрузку/zfcuser.global.php:
'user_entity_class' => 'MyApp\Entity\MyUser',
Но I`ve не нашел легкий способ сказать ZfcUser к используйте мой класс mapper.
я только обнаружил, что картограф создается ZfcUser \ Module :: 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 использовать мой пользовательский класс mapper?
Большое спасибо! Я искал ту же самую информацию, и с помощью вашего сообщения мне удалось перезагрузить классы Entity и Mapper zfcUser, которые будут использоваться с моей БД и расширенными функциями Entity! – Brock