我在extbase / fluid中编写了一个小扩展,现在我在存储库中遇到了一个小问题。
使用我的扩展程序,您可以创建使用system_categories进行分类的项目(类似于每个新闻扩展)。 我想要做的是在第X页显示所有类别为x的项目,在第Y页显示所有类别y。
我知道我必须在我的itemRepository.php中编写查询,但我无法使其工作,所以这里'我的存储库代码:
public function findSearchForm($limit)
{
$query = $this->createQuery();
$query->getQuerySettings()->setLanguageUid($GLOBALS["TSFE"]->tmpl->setup['config.']['sys_language_uid']);
$query->matching(
$query->like('title','%'.$search.'%')
);
# $query->setOrderings(array('title' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));
return $query->execute();
}
我试图在“query-> like”之后扩展查询,即使是像这样的语句
$query->statement("SELECT * FROM sys_category_record_mm WHERE uid_local = '11'")
答案 0 :(得分:3)
首先:您是如何在记录上启用分类的?它在后端是否正常工作?
如果为类别使用正确配置了TCA,则可以使用通用存储库方法来过滤结果。但是你必须使用AND将条件与你的“标题”条件结合起来。
尝试这样的事情:
public function findSearchForm($limit)
{
$query = $this->createQuery();
$constraints = array();
$yourCategory = 11;
// Your $search-variable seems to be undefined?
//$constraints[] = $query->like('title','%'.$search.'%');
$constraints[] = $query->contains('categories', $yourCategory);
$query->matching(
$query->logicalAnd($constraints)
);
// I think you dont need this...
$query->getQuerySettings()->setLanguageUid($GLOBALS["TSFE"]->tmpl->setup['config.']['sys_language_uid']);
return $query->execute();
}