showAction:按用户名而不是uid

时间:2015-09-25 18:31:24

标签: typo3 extbase typo3-6.2.x

我使用Extension Builder创建了我自己的(Typo3 6.2)扩展来扩展 fe_users 并且一切正常但我希望能够使用 showAction 用户名上,而不是用户的 uid

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

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

而不是:

my.domain.com/users?tx_crilcq_crilcqmember [构件] = 2及tx_crilcq_crilcqmember [动作] =显示

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

有人知道吗?

1 个答案:

答案 0 :(得分:3)

Extbase存储库具有魔术方法 findBy [property] findOneBy [property] countBy [property] ,返回/计算对象由给定的财产。

您可以更改自定义动作,如下所示:

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