我尝试将一个简单的搜索表单添加到我的extbase扩展中,这不会像假设的那样工作。我想将输入(关键字)作为参数传递给我的searchAction。
//添加到 list.html
<f:form action="search" arguments="{keyword}">
<f:form.textfield name="keyword" value="Suchbegriff">
<f:form.submit value="Suchen" />
</f:form>
//添加到 ItemController.php
/**
* action search
*
* @param \string $keyword
* @return void
*/
public function searchAction($keyword='') {
$items = $this->itemRepository->findKeyword($keyword);
$this->view->assign('items', $items);
}
如何将输入从文本域keyword
传递到我的ItemControllers searchAction()
???
答案 0 :(得分:0)
您可以通过在控制器Action中使用以下方法从视图中获取所有参数。
$this->request->getArguments();
通过使用此方法,您可以检查是否传递了参数。 你也可以像这样检查:
if($this->request->hasArgument('Search')) { }
如果您的字段是关键字,那么您可以这样找到:
if($this->request->hasArgument('Search')) {
$items = $this->itemRepository->findKeyword($this->request->getArgument('Search'));
}
$this->view->assign('searchItems', $items);
答案 1 :(得分:0)
我想知道你没有得到例外。参数是数组的类型。 你的表格必须看起来像这样。
<f:form action="search" arguments="{keyword:keyword}">
<f:form.textfield name="keyword" value="Suchbegriff">
<f:form.submit value="Suchen" />
</f:form>
答案 2 :(得分:0)
应该像这样
extern template
控制器中的应该是这样的
<f:form action="search" name="query">
<f:form.textfield property="keyword" value="">
<f:form.submit value="Suchen" />
</f:form>
您的存储库中的应该是这样的
/**
* action search
*
* @param \string $keyword
* @return void
*/
public function searchAction($keyword='') {
if ($this->request->hasArgument('query')) {
$search = $this->request->getArgument('query');
$items = $this->itemRepository->findKeyword($keyword);
}
$this->view->assign('items', $items);
}
希望它会有所帮助!