2017-06-19 4 views
0

TYPO3 8.7.1でフォームフィニッシャSaveToDataBaseを使用する方法?私はYAMLでフィニッシャーを追加しようと、私はエラーがあります:SaveToDatabase in TYPO3 8

Argument 1 passed to TYPO3\CMS\Form\Domain\Finishers\SaveToDatabaseFinisher::process() must be of the type integer, string given, called in typo3\sysext\form\Classes\Domain\Finishers\SaveToDatabaseFinisher.php on line 207

YAMLドキュメント:から

renderingOptions: 
    submitButtonLabel: Submit 
type: Form 
identifier: form 
label: Form 
prototypeName: standard 
finishers: 
    - 
    options: 
     table: table1 
     mode: update 
     whereClause: 
     uid: '1' 
     elements: 
     text-1: 
      mapOnDatabaseColumn: column1 
    identifier: SaveToDatabase 
renderables: 
    - 
    renderingOptions: 
     previousButtonLabel: 'previous Page' 
     nextButtonLabel: 'next Page' 
    type: Page 
    identifier: page-1 
    label: Page 
    renderables: 
     - 
     defaultValue: '' 
     type: Text 
     identifier: text-1 
     label: Text 
+0

YAML形式はありません。あなたが提示したのはYAML文書であり、有効です。フォームとしての解釈はtypo3内部で行われます。 – Anthon

+0

@Anthonこれは正しくありません。 TYPO3 v8には、完全に書き直されたフォームフレームワークが付属しています。どちらも、構成とフォームの定義はYAMLに基づいています。詳細については、ドキュメントをご覧ください:https://docs.typo3.org/typo3cms/drafts/code.tritum.de/TYPO3.CMS/Form_Documentation/Index.html –

+0

@Sergey https://docs.typo3をお読みください。 org/typo3cms/drafts/code.tritum.de/TYPO3.CMS/Form_Documentation/ApiReference/Index.html#savetodatabase-finisher。 –

答えて

0

例をTYPO3 \ SYSEXT \ドメイン\完走\ SaveToDatabaseFinisher.php

\フォーム\クラス
* ======= 
* 
* finishers: 
* - 
*  identifier: SaveToDatabase 
*  options: 
*  table: 'fe_users' 
*  mode: update 
*  whereClause: 
*   uid: 1 
*  databaseColumnMappings: 
*   pid: 
*   value: 1 
*  elements: 
*   text-1: 
*   mapOnDatabaseColumn: 'first_name' 
*   text-2: 
*   mapOnDatabaseColumn: 'last_name' 
*   text-3: 
*   mapOnDatabaseColumn: 'username' 
*   advancedpassword-1: 
*   mapOnDatabaseColumn: 'password' 
*   skipIfValueIsEmpty: true 
* 

多分私は何かを忘れましたか?

2

私は同じTYPO3例外がありました。 -を使用して、配列としてオプションを書き込もうとします。これは私の問題を解決しました。

renderingOptions: 
    submitButtonLabel: Submit 
type: Form 
identifier: form 
label: Form 
prototypeName: standard 
finishers: 
    - 
    options: 
     - 
     table: 'table1' 
     mode: update 
     whereClause: 
      uid: '1' 
     elements: 
      text-1: 
      mapOnDatabaseColumn: column1 
    identifier: SaveToDatabase 
renderables: 
    - 
    renderingOptions: 
     previousButtonLabel: 'previous Page' 
     nextButtonLabel: 'next Page' 
    type: Page 
    identifier: page-1 
    label: Page 
    renderables: 
     - 
     defaultValue: '' 
     type: Text 
     identifier: text-1 
     label: Text 
+0

書くことができますか? –

+0

私は既にあなたのコード例を私の答えで更新しました。 'options:'行の下にダッシュ ' - 'を含む新しい行を追加しました。これは配列(またはYAMLで呼び出される_sequence_)を記述します。以下のコードは、2つのスペースで字下げする必要があります。 – sebkln

+0

これは素晴らしいです!これはドキュメントにはないので、これはEXT:フォームのバグ、または少なくとも不必要な動作... 私の場合、あなたのソリューションは明確に機能します! – BastianBalthasarBux