У меня есть расширение в TYPO3 7.6, где в бэкэнде можно выбрать одного пользователя внешнего интерфейса (одиночный выбор). В бэкэнде я могу выбрать пользователя, и в базе данных указан правильный идентификатор пользователя. Но если я отлаживаю данные во внешнем интерфейсе, пользовательский объект всегда имеет значение «null».
Не знаю, как это может случиться, потому что несколько месяцев назад все работало нормально. Может я где-то поменял соментинг, но не могу узнать, что не так. Вот некоторые ошибки:
На контроллере подробного представления мне нужен uid выбранного пользователя, но я получаю сообщение об ошибке:
Call to a member function getUid() on null
Во внешнем интерфейсе пользователь может добавить новые данные, и пользовательский uid установлен, но я также получаю сообщение об ошибке:
#1297933823: Object of type TYPO3\CMS\Extbase\Domain\Model\FrontendUser with identity "257" not found.
Пользователь с идентификатором 257 существует и не скрыт и не удален, потому что этот идентификатор принадлежит пользователю, вошедшему в систему (я получаю от $ GLOBALS ['TSFE'] -> fe_user-> user ['uid']).
У кого-нибудь есть идея, что может быть не так?
Вот настройка от модели:
/**
* Returns the user
*
* @return \TYPO3\CMS\Extbase\Domain\Model\FrontendUser user
*/
public function getUser()
{
return $this->user;
}
/**
* Sets the user
*
* @param \TYPO3\CMS\Extbase\Domain\Model\FrontendUser $user
* @return void
*/
public function setUser(\TYPO3\CMS\Extbase\Domain\Model\FrontendUser $user)
{
$this->user = $user;
}
Спасибо за помощь! Мартин
2 ответа
Я обнаружил проблему ... другое расширение расширяло feuser, и расширение не было правильной настройкой.
Согласно документации, вы должны использовать тип group
https://docs.typo3.org/typo3cms/TCAReference/ColumnsConfig/Type/Group.html#type-group.
Ваш TCA должен выглядеть так:
'user' => [
'label' => 'User',
'config' => [
'type' => 'group',
'internal_type' => 'db',
'allowed' => 'fe_users',
'foreign_table' => 'fe_users',
'minitems' => 0,
'maxitems' => 1,
],
],
Новые вопросы
typo3
TYPO3 - это система управления веб-контентом (CMS) с открытым исходным кодом, написанная на PHP. Обычно он объединяется с базой данных MySQL и работает во многих системах Unix и Windows.