TYPO3: расширение модели и сопоставление с существующей таблицей

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

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

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

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

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

Единственное, что я обнаружил, было то, что /Classes/Domain/Repository/ папка пуста

TYPO3 7.6.8

Хотя я еще не редактировал файлы, вот они:
модель / контроллер / Настроить

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

1

Решение

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

Во-вторых, вы пытаетесь сохранить пользователя с $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
}
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]