Я пытаюсь пройти через книгу «TYPO3 Extbase - Modern Extension Development» от П. Лобахера. Там я нахожусь в поиске с поисковым полем. Здесь мой редактор (PHPStorm) говорит мне, что $ search не определен.FE Searchfield in simpleblog extension не работает
У меня есть 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>
Если я изменю назначение на просмотр в своем спискеВак к:
$this->view->assign('blogs', $this->blogRepository->findSearchForm('Testblog',$limit));
Затем он показывает мне блоги с заголовком «Тестирование» в нем. Но динамически это не сработает.
Я использую TYPO3 v8.5.1
Thx за вашу помощь.
Привет, Пол, THX для вашего ответа. Я изменил NULL на 0, а затем у меня был отлаженный $ search и результат: '0' (1 символ) С назначениемMultiple() - Array вы имеете в виду что-то вроде: $ this-> view-> assign (array ((«блоги», $ this-> blogRepository-> findSearchForm ($ search, $ limit)), ('поиск', $ search)))? Или что вы имели в виду? Визуализированное HTML является: <класс = тип = имя входного «форма-контроль» «текст» = «tx_cfsimpleblog_bloglisting [поиск]»> EDIT: Я уже положить в «НЕ КЭШИРУЕТСЯ» Спасибо ему за Помогите. – codeFragment