Maison  >  Questions et réponses  >  le corps du texte

TYPO3 V11 : "Avertissement PHP : clé de tableau non définie", $this->request->getArguments() est vide

Je suis un nouvel utilisateur de typo3, j'ai créé un plugin pour afficher les utilisateurs et utiliser la barre de recherche pour les filtrer, mais lorsque je veux afficher ma page, j'obtiens cette erreur :

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

Dans mon contrôleur, j'essaie d'obtenir le paramètre pour l'utiliser dans mon filtre comme ceci :

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

somecode ...

}

J'ai essayé de vider $arguments mais c'était vide

Une partie de mon référentiel :

/**
     * @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
        ]);

Est-ce que quelqu'un sait pourquoi je n'arrive pas à obtenir les paramètres ? Merci

Si vous avez besoin de plus de parties du code, veuillez me le faire savoir

P粉807471604P粉807471604311 Il y a quelques jours866

répondre à tous(1)je répondrai

  • P粉817354783

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

    Si vous appelez simplement l'opération List sans envoyer le formulaire de filtre, les paramètres seront vides.

    Vous devez tester chaque paramètre attendu avant d'y accéder, comme ceci :

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

    répondre
    0
  • Annulerrépondre