搜索

首页  >  问答  >  正文

TYPO3 V11: "PHP警告:未定义的数组键",$this->request->getArguments()为空

我是typo3的新用户,我制作了一个插件来显示用户,并使用搜索栏来过滤他们,但是当我想显示我的页面时出现此错误:

(1/1) #1476107295 TYPO3CMSCoreErrorException
PHP Warning: Undefined array key "word" in MyPath/Controller/UserlistController.php line 44

在我的控制器中,我尝试获取参数以在我的过滤器中使用它,如下所示:

public function listAction(int $currentPage = 1)
{
   $arguments = $this->request->getArguments();
   $users = $this->userlistRepository->findBySearch($arguments['word'] ? $arguments['word'] : '');

somecode ...

}

我尝试转储 $arguments,但它是空的

我的存储库中有一部分:

/**
     * @param string $word
     * @return object[]|TYPO3CMSExtbasePersistenceQueryResultInterface
     * @throws TYPO3CMSExtbasePersistenceExceptionInvalidQueryException
     */
    public function findBySearch(string $word) {
        $query = $this->persistenceManager->createQueryForType(TYPO3CMSExtbaseDomainModelFrontendUser::class);
        $querySettings = $query->getQuerySettings();
        $querySettings->setStoragePageIds([26]);
        $query->setQuerySettings($querySettings);

        $query->setOrderings([
            'lastName' => QueryInterface::ORDER_ASCENDING
        ]);

有人知道为什么我无法得到参数吗?谢谢

如果您需要更多部分代码,请告诉我

P粉807471604P粉807471604367 天前973

全部回复(1)我来回复

  • P粉817354783

    P粉8173547832023-11-13 18:55:40

    如果您只是调用 List 操作而不发送过滤器表单,则参数为空。

    您应该在访问每个预期参数之前对其进行测试,如下所示:

    if($this->request->hasArgument('word')) {
            $searchOption = $this->request->getArgument('word'));
    }

    回复
    0
  • 取消回复