【问题标题】:TYPO3 8.7: findByEmail function of frontenduserrepository returns nullTYPO3 8.7:frontenduserrepository 的 findByEmail 函数返回 null
【发布时间】:2019-01-31 15:46:24
【问题描述】:

在我的自定义扩展的module 中,我试图更改fe_user 的db 值。事实上,我正在尝试更改电子邮件和用户名。 但是当我使用给定的 TYPO3 FrontendUserRepo 时,函数 findByEmail 返回 null。电子邮件$_POST['email'] 已正确传递,我也尝试对有效的电子邮件进行硬编码,但没有成功。

在控制器中:

进口:

use TYPO3\CMS\Extbase\Domain\Model\FrontendUser;

FrontendUserRepo 注入作为类的属性:

/**
 * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
 * @inject
 */
protected $frontendUserRepository;

...

在行动:

$frontendUser =  $this->frontendUserRepository->findByEmail($_POST['email_old']);
$frontendUser->setUsername($_POST['email']);
$frontendUser->setEmail($_POST['email']);

【问题讨论】:

    标签: php typo3 typo3-8.x


    【解决方案1】:

    这很可能是因为 storagePid 尚未设置为前端用户所在的文件夹。将扩展的 storagePid 设置为前端用户所在的文件夹。这可以在 TypoScript 中使用:module.tx_yourextension.persistence.storagePid = ...

    如果您的用户与扩展程序使用的其余记录位于不同的文件夹中,您可以设置多个 uid 以逗号分隔。如果您创建新记录,则需要设置每种记录类型应保存的 uid:

    module.tx_yourextensions.persistence {
      storagePid = [uid1],[uid2]
      Vendor\YourExtension\Domain\Model\YourModel {
        newRecordStoragePid = [uid1]
      }
      TYPO3\CMS\Extbase\Domain\Model\FrontendUser {
        newRecordStoragePid = [uid2]
      }
    }
    

    【讨论】:

    • 感谢您的回答。当我按照您的建议设置 storagePid 时,我的模块的其余部分会中断。当然我用module.tx_yourextension.persistence.storagePid = 而不是plugin.txyourext.....
    • 我已编辑我的答案以包含有关多个存储文件夹的信息。
    • 感谢您的帮助。
    【解决方案2】:

    此问题的可能解决方案是:

    $querySettings = $this->FrontendUserRepository->createQuery()->getQuerySettings();
           // don't add the pid constraint
           $querySettings->setRespectStoragePage(FALSE);
           $this->FrontendUserRepository->setDefaultQuerySettings($querySettings);
    

    在这种情况下,您不需要第二个存储 pid

    【讨论】:

      【解决方案3】:

      设置属性后需要保存对象。 这是一种方法:

      $frontendUserRepository->update($frontendUser);
      

      【讨论】:

      • 感谢您的回答,但您是否阅读了我的问题?我没有对象,因为应该返回一个的方法返回 null。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2021-03-31
      相关资源
      最近更新 更多