したがって、フレームワークは CodeIgniter 2.0.2 です。データベースの行に対応するフィールドのグループを持つフォームがあります。フィールド名の形式は次のとおりです。
opt[0][foo]
opt[0][bar]
opt[1][foo]
opt[1][bar]
etc...
インデックス (1、2 など) はデータベースの行 ID に対応していません。これは単にフィールドのグループを分割する方法です。ユーザーは任意の数のフィールド グループを追加および削除できるため、インデックスにギャップが生じる場合があります。すべてのグループは同一です。つまり、同じ第 2 レベル名を持つまったく同じフィールド セットが含まれています。
CodeIgniter の検証ライブラリを使用してフォームを検証し、必要に応じて (p) 再入力できるようにしたいと考えています。事前入力に関する多くの投稿 (優れた CI ユーザー ガイドに加えて) を見つけました。一般的に、再入力を操作する方法を知っています。ただし、上記のインデックス付きフィールド名で試したのはこれが初めてです。以下を試しましたが、うまくいきません。
array(
'field' => 'opt[][foo]',
'label' => 'Foo',
'rules' => 'required'
)
私はあまりにも多くのことを望んでいただけで、CodeIgniter は私が必要とすることをサポートしていないと推測しています。既存のフォーム検証ライブラリを拡張することはオプションであるため、誰かが同じ状況にあり、非常に歓迎されるいくつかのヒントを提供できる場合.
アップデート:
ちょっとした追加情報ですが、具体的にインデックスが作成されたフィールド (以下を参照) の検証も試みましたが、これも機能しませんでした...私が理解しているように、特定のケースでは多次元検証が機能するはずです:
array(
'field' => 'opt[0][foo]',
'label' => 'Foo',
'rules' => 'required'
)