Я создал небольшое расширение, которое может показать игру-головоломку. Переключаемые действия контроллера, которые я сделал, включают в себя список/шоу (отлично работает), admin (также отлично) и показывают только.Показывать только один элемент flexform в Extbase
Только для показа. Я хочу выбрать запись базы данных из flexform, которая будет отображаться одним видом. Для этого я добавил новое поле Flexform:
<settings.singlePuzzle>
<TCEforms>
<label>Puzzle to show</label>
<config>
<type>select</type>
<foreign_table>tx_wspuzzle_domain_model_puzzle</foreign_table>
<items>
<numIndex index="0" type="array">
<numIndex index="0">-- Choose --</numIndex>
<numIndex index="1"></numIndex>
</numIndex>
</items>
<size>1</size>
<maxitems>1</maxitems>
<minitems>0</minitems>
</config>
</TCEforms>
</settings.singlePuzzle>
До сих пор так хорошо, если выбрать пункт здесь и отладить его в списке он, кажется, выбрать правильный идентификатор.
Теперь я изменил showAction в контроллере выглядеть следующим образом:
/**
* action show
*
* @param \Websafari\Wspuzzle\Domain\Model\Puzzle $puzzle
* @return void
*/
public function showAction(\Websafari\Wspuzzle\Domain\Model\Puzzle $puzzle = NULL) {
if(is_null($puzzle)) $puzzle = $this->puzzleRepository->findByUid($this->settings['singlePuzzle']);
$this->view->assign('puzzle', $puzzle);
}
Так что теперь я изменить действие «показать только» выберите запись для «singlePuzzle», а затем (я думаю) я должны быть хорошо идти, но все это я получаю IST следующее сообщение об ошибке:
Required argument "puzzle" is not set.
Очевидно, что я сделал ошибку, но я не понимаю.
Во-первых: Почему требуется «головоломка»? Вот почему я добавил «= NULL» к функции (я также попытался добавить @ignorevalidation $ puzzle к комментарию).
Второй: почему он не установлен? Когда я отлаживаю «$ this-» настройки ['singlePuzzle']; Я получаю идентификатор объекта-загадки.
Было бы здорово, если бы кто-нибудь мог указать на мою ошибку, потому что я действительно застрял здесь. Thnx много!
Временное решение добавить пустой параметр в URL, как это tx_wspuzzle_puzzle [головоломки]?. Это прекрасно работает. Я очень ценю всю работу, которая вошла в extbase, но иногда происходят странные вещи. –