我創建了一個可以顯示益智遊戲的小擴展。我製作的可切換控制器動作包括列表/顯示(正常工作),管理員(也很好),並且只顯示。僅在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>
到目前爲止好,如果我看來,選擇正確的ID列表視圖中選擇這裏的項目和調試。
現在我在控制器改變的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」的條目,然後(我認爲)我應該很好走,但我得到的是以下錯誤:
Required argument "puzzle" is not set.
顯然我犯了一個錯誤,但我不明白。
第一:爲什麼仍然需要「拼圖」?這就是爲什麼我添加「= NULL」的功能(我也嘗試添加@ignorevalidation $益智評論)。
第二:爲什麼沒有設置?當我調試「$ this-> settings ['singlePuzzle'];」我得到一個拼圖對象的ID。
如果有人能指出我的錯誤,會很好,因爲我真的被困在這裏。 Thnx很多!
一個臨時的解決方案是一個空的參數添加到URL這樣tx_wspuzzle_puzzle [益智]。這工作正常。我非常感謝所有進入extbase的工作,但有時候會有奇怪的事情發生。 – 2014-11-04 15:20:46