と呼ばれるカスタム モデルを作成しました。Play
これにはプロパティがTitle
ありBody
、ゲッターとセッターがあります。
私のコントローラーの1つにMaster
、new and create actions
public function newAction(\TYPO3\Playground\Domain\Model\Play $newPlay = NULL) {
$this->view->assign('newPlay', $newPlay);
}
私のビューは次のようになります。
<table>
<f:form action="create" name="newPlay" object="{newPlay}">
<th>Title:</th>
<td>
<f:form.textfield property="title"/>
</td>
<th>Body:</th>
<td>
<f:form.textarea property="body"/>
</td>
</th>
<tr>
<td>
<f:form.submit value="Create"/>
</td>
</tr>
</f:form>
</table>
しかし、コントローラーの作成関数で、このエラーが発生しますRequired argument "newPlay" is not set.
public function createAction(\TYPO3\Playground\Domain\Model\Play $newPlay) {
echo $newPlay->getBody();
echo $newPlay->getTitle();
}
ここで何か不足していますか?
アップデート
名前をオブジェクトに一致させ、フィールドのプロパティの括弧を削除すると、次のエラーが発生します。
プロパティ パス "" でのプロパティ マッピング中の例外: "配列" から "TYPO3\Playground\Domain\Model\Play" への変換に使用できるコンバーターが見つかりません。
それに対する私の解決策
これよりもきちんとした方法があると確信しています
public function createAction() {
$newPlayArray=$this->request->getArgument('newPlay');
$newPlay = json_decode(json_encode($newPlayArray), FALSE);
echo $newPlay->title;
}