2016-08-10 2 views
1

Мне нужно создать пользовательский пользователь FE с некоторыми настраиваемыми полями. Кроме того, он должен быть назначен через интерфейс для разных групп пользователей.TYPO3: Расширение модели и отображение существующей таблицы

Вы можете найти мой первый подход here. Не получилось так хорошо.

Второй подход состоял в том, чтобы создать другое расширение и следовать указателю, которое показано here.

Первое, что я сделал, это добавить \TYPO3\CMS\Extbase\Domain\Model\FrontendUser в расширение существующего класса моделей для моей модели CustomFEU. Затем я создал другую модель, которую я назвал FEgroup, и я сопоставил ее с таблицей fe_groups. После этого я подключил отношение n: m к CustomFEU.

Когда я пытаюсь создать новый CustomFEU с действием new, он возвращает белую пустую страницу после отправки формы, и пользователь не добавляется.

Единственная странная вещь, которую я нашел, это то, что папка /Classes/Domain/Repository/ пуста.

TYPO3 7.6.8

Хотя я не редактировал файлы еще, вот они:
Model/Controller/Setup

ли кто-нибудь столкнуться с подобными проблемами?

+1

Пожалуйста, включите ваш код - ссылки из пастабин могут умереть. Если вы получаете пустую страницу, вы, вероятно, получаете фатальную ошибку PHP где-то - проверьте журнал ошибок или включите отображение ошибок во внешнем интерфейсе. – Jost

+1

«Пустая белая страница» звучит так, как будто ваша система не печатает ошибки/исключения. Включите display_errors в php и установите вашу установку TYPO3 в настройку разработки, чтобы узнать, что происходит. Кроме того, вы говорите о том, что метод newAction() или createAction() ошибочен? – j4k3

ответ

2

Сначала вам нужно создать репозитории, которые обрабатывают новые модели пользователей и пользователей.

Во-вторых, вы пытаетесь сохранить пользователя с $this->customFEURepository->add($newCustomFEU);, а переменная customFEURepository не существует. Было бы лучше всего добавить его, это должен быть репозиторий, который вы должны создать в первую очередь. Вы можете вводить его так:

/** 
* CustomFEUController 
*/ 
class CustomFEUController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController 
{ 

    /** 
    * @var \Vendor\Feregistration\Repository\CustomFEURepository 
    * @inject 
    */ 
    protected $customFEURepository; 

// other code ... 
} 

Не забудьте очистить кэш системы после добавления впрыснуть аннотации, в противном случае он не будет работать.

Последнее, но не менее важное: я не вижу сопоставления с таблицей базы данных для вашей модели. Вам нужно добавить его в свой TypoScript (setup.txt)

config.tx_extbase.persistence.classes { 

    Vendor\Feregistration\Domain\Model\CustomFEU { 
     mapping { 
      recordType = 0 
      tableName = fe_users 
     } 
    } 

    Vendor\Feregistration\Domain\Model\FEGroups { 
     mapping { 
      recordType = 0 
      tableName = fe_groups 
     } 
    } 
} 
Смежные вопросы