showAction:通过用户名而不是 uid 查找 fe_user 条目

showAction : finding fe_user entry by username instead of uid

我使用扩展构建器创建了自己的(Typo3 6.2)扩展来扩展 fe_users,一切正常,但我希望能够使用showAction 基于 username 而不是用户的 uid

目标只是能够像这样在前端调用控制器:

my.domain.com/users?tx_crilcq_crilcqmember[用户名]=johndoe&tx_crilcq_crilcqmember[动作]=显示

而不是这个:

my.domain.com/users?tx_crilcq_crilcqmember[member]=2&tx_crilcq_crilcqmember[action]=show

起初我以为我必须修改扩展存储库(class MemberRepository extends \TYPO3\CMS\Extbase\Persistence\Repository)但它似乎用于请求返回一个条目数组而不是引用一个单个实例。不知道我的看法是否正确,但我的感觉是我需要修改的东西在其他地方。

有线索吗?

Extbase 存储库有魔术方法 findBy[属性]findOneBy[属性]countBy[属性],即 returns/counts 个对象由给定的 属性。

您可以更改您的表演动作,如下所示:

/**
 * @param string $username
 * @return void
 */
public function showAction($username) {
    $user = $this->memberClassRepository->findOneByUsername($username);
    $this->view->assign('user', $user);
}