TYPO3 类型为 xxx\\yyy\\Domain\\Model\\User 的对象,身份为 \"1\" 未找到。

TYPO3 Object of type xxx\\yyy\\Domain\\Model\\User with identity \"1\" not found."

我想将自定义 FrontendUser 添加到组控制器中的组(与前端组无关)。

Extbase 不知何故可以通过 uid 找到我的组,但不能通过 uid 找到我指定的用户。

我在 GroupController 中的操作是:

/**
  * action addUser
  * @param \xxx\Yyy\Domain\Model\Group $group
  * @param \xxx\Yyy\Domain\Model\User $user
  *
  * @return void
  */
  public function addUserAction(\xxx\Yyy\Domain\Model\Group $group, \xxx\Yyy\Domain\Model\User $user)
  {
    $group.addUser($user);
    return "ok";

  }

我的错误异常是:

{"error":"TYPO3\CMS\Extbase\Property\Exception\TargetNotFoundException #1297933823: Object of type xxx\Yyy\Domain\Model\User with identity \"1\" not found."
,"trace":["TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter->fetchObjectFromPersistence(2 Arguments)"
,"TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter->convertFrom(4 Arguments)"
,"TYPO3\CMS\Extbase\Property\PropertyMapper->doMapping(4 Arguments)"
,"TYPO3\CMS\Extbase\Property\PropertyMapper->convert(3 Arguments)"
,"TYPO3\CMS\Extbase\Mvc\Controller\Argument->setValue(1 Arguments)"
,"TYPO3\CMS\Extbase\Mvc\Controller\AbstractController->mapRequestArgumentsToControllerArguments()"
,"TYPO3\CMS\Extbase\Mvc\Controller\ActionController->processRequest(2 Arguments)"
,"TYPO3\CMS\Extbase\Mvc\Dispatcher->dispatch(2 Arguments)"
,"TYPO3\CMS\Extbase\Mvc\Web\FrontendRequestHandler->handleRequest()"
,"TYPO3\CMS\Extbase\Core\Bootstrap->handleRequest()"
,"TYPO3\CMS\Extbase\Core\Bootstrap->run(2 Arguments)"
,"xxx\Yyy\Rest\Helper->callExtbasePlugin(6 Arguments)"
,"xxx\Yyy\Rest\GroupHandler->xxx\Yyy\Rest\{closure}(1 Arguments)"
,"Cundd\Rest\Router\Route->process(1 Arguments)"
,"Cundd\Rest\Router\Router->dispatch(1 Arguments)"
,"Cundd\Rest\Router\ResultConverter->dispatch(1 Arguments)"
,"Cundd\Rest\Dispatcher->callHandler(1 Arguments)"
,"Cundd\Rest\Dispatcher->getCachedResponseOrCallHandler(2 Arguments)"
,"Cundd\Rest\Dispatcher->dispatch(2 Arguments)"
,"Cundd\Rest\Dispatcher->processRequest(2 Arguments)"
,"Cundd\Rest\BootstrapDispatcher->processRequest(2 Arguments)"
,"call_user_func_array(2 Arguments)"
,"TYPO3\CMS\Core\Http\Dispatcher->dispatch(2 Arguments)"
,"TYPO3\CMS\Frontend\Http\EidRequestHandler->dispatch(1 Arguments)"
,"TYPO3\CMS\Frontend\Http\EidRequestHandler->handleRequest(1 Arguments)"
,"TYPO3\CMS\Core\Core\Bootstrap->handleRequest(1 Arguments)"
,"TYPO3\CMS\Frontend\Http\Application->run()"
,"{closure}()"
,"require(1 Arguments)"]}

出于调试目的,我添加了一个 initializeAction:

public function initializeAddUserAction()
  {
    return var_dump($_POST);
  }

结果是:

array(1) {
  ["tx_yyy_jsonapi"]=>
  array(4) {
    ["controller"]=>
    string(5) "Group"
    ["action"]=>
    string(7) "addUser"
    ["group"]=>
    int(1)
    ["user"]=>
    int(1)
  }
}

我做错了什么?为什么小组解决得很好,但用户却不行?我在版本 3 中使用 TYPO3 8.7 和其余扩展。

fe_users 将字段 tx_extbase_type 设置为 0。如果我将其设置为 Tx_Yyy_User,它会起作用。所以问题是我在常规 FrontendUser 和我的自定义前端用户之间没有区别。