我正在尝试阅读P.Lobacher的“TYPO3 Extbase - 现代扩展开发”一书。在那里,我与搜索字段有关。在这里,我的编辑(PHPStorm)告诉我$ search没有被定义。简单博客扩展中的FE Searchfield不起作用
我有一个的listAction:
/**
* @internal param string $search
*/
public function listAction() {
if ($this->request->hasArgument('search')){
$search = $this->request->getArgument('search');
}
$limit = ($this->settings['blog']['max']) ?: NULL;
$this->view->assign('blogs', $this->blogRepository->findSearchForm($search,$limit));
$this->view->assign('search', $search);
}
在我的仓库我试图建立这样的查询:
/**
* @param string $search
* @param int $limit
* @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface
*/
public function findSearchForm($search,$limit) {
$query = $this->createQuery();
$query->matching(
$query->like('title','%'.$search.'%')
);
$query->setOrderings(array('title' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));
$limit = (int)$limit; if ($limit > 0) {
$query->setLimit($limit);
}
return $query->execute();
}
在我的列表视图中我有这样的searchform:
<f:form action="list" additionalAttributes="{role:'form'}"> <div class="form-inline">
<div class="form-group">
<f:form.textfield name="search" value="{search}" class="form-control" /> <f:form.submit value="Search!" class="btn-xs btn-primary" />
</div> </div>
</f:form>
如果我更改分配给我的listAction中的视图:
$this->view->assign('blogs', $this->blogRepository->findSearchForm('Testblog',$limit));
然后他向我展示了带有titlefragment“Testblog”的博客。但动态的它不会工作。
我正在使用TYPO3 v8.5.1
Thx为您提供帮助。
嗨保罗,thx为您的答案。我已经将NULL更改为0,然后我调试了$ search并且结果是:'0'(1个字符) 使用assignMultiple() - 数组表示您的意思是:$ this-> view-> assign(array (('blogs',$ this-> blogRepository-> findSearchForm($ search,$ limit)),('search',$ search)))?或者你是什么意思? 渲染HTML是:<输入类=“形式控制”型=“文本”名称=“tx_cfsimpleblog_bloglisting [搜索]”> 编辑:我已经投入到“不高速缓存” THX您帮帮我。 – codeFragment