是否可以在不同的控制器中调用一个函数?我需要打电话FindByCategoryGrouped($catId)
在 designRepository.php 和getCategories($catId)
来自categoryRepository.php
public function listAction() {
$this->settings['flexform']['showCategory'] ? $catId = $this->settings['flexform']['showCategory']:$catId = $this->settings['listView']['showCategory'];
// print $catId;
if (!$catId || $this->settings['flexform']['showCategory'] == '-1') {
$designs = $this->designRepository->findAll();
} else {
// $designs = $this->designRepository->findByCategory($catId);
$designs = $this->designRepository->findByCategoryGrouped($catId); // THIS
$categories = $this->categoryRepository->getCategories($catId); // THIS
}
// indhold forsvinder hvis næste linje slettes
$this->view->assign('designs', $designs, "L", $GLOBALS['TSFE']->sys_language_uid);
$this->view->assign('catId', $catId);
$this->view->assign('categories', $categories);
}
您可以注入每个已安装的 extbase 扩展的每个存储库。只需将依赖项注入代码添加到您的控制器即可。根据您的 TYPO3 版本,可以是:
打字3 >= 6.0:
/**
* @var \Vendor\Extension\Domain\Repository\SomeRepository
* @inject
*/
protected $someRepository;
请注意,@inject
与专用注入方法相比,注释的性能不太好。因此,如果您需要调整应用程序的性能并在 yout 控制器中进行多次注入,您应该考虑切换到注入方法:
/**
* @var \Vendor\Extension\Domain\Repository\SomeRepository
*/
protected $someRepository;
/**
* @param \Vendor\Extension\Domain\Repository\SomeRepository
*/
public function injectSomeRepository(\Vendor\Extension\Domain\Repository\SomeRepository $someRepository) {
$this->someRepository = $someRepository;
}
打字3 = 4.7:
/**
* @var Tx_MyExtension_Domain_Repository_SomeRepository
* @inject
*/
protected $someRepository;
错别字3
/**
* @var Tx_MyExtension_Domain_Repository_SomeRepository
*/
protected $someRepository;
/**
* Inject SomeRepository
* @param Tx_MyExtension_Domain_Repository_SomeRepository $someRepository
* @return void
*/
public function injectSomeRepository(Tx_MyExtension_Domain_Repository_SomeRepository $someRepository) {
$this->someRepository = $someRepository;
}
在任何情况下你都可以使用$this->someRepository
以及您将存储库注入到的控制器中的所有方法。
编辑:修正错字。
Edit: 添加依赖注入后,你必须清除缓存!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)