CI user_guide に従って、次のセットを含む「form_validation.php」という名前の構成ファイルを作成しました。
$config = array(
'user/create' => array(
array(
'field' => 'id',
'label' => '',
'rules' => ''
),
array(
'field' => 'first_name',
'label' => 'lang:First name',
'rules' => 'required|max_length[30]'
),...
),
'user/update' => array(
array(
'field' => 'id',
'label' => '',
'rules' => ''
),
array(
'field' => 'first_name',
'label' => 'lang:First name',
'rules' => 'required|max_length[30]'
),...
)
);
私の「ユーザー」コントローラーでは、「作成」メソッドを呼び出すと、したがって URLを使用して、構成ファイルで定義された最初のルール セットがhttp://localhost/my_ci_application/user/create
ステートメントによって自動的に実行されます。$this->form_validation->run()
これは、ユーザー ガイドで読んだ予想通りの動作です。
しかし、次の URL を実行してhttp://localhost/my_ci_application/user/update/1
ID が 1 のユーザーを更新すると、'user/update' ルール セットが自動的に読み込まれません。パラメータのため、CI は「user/update/1」ルール セットを見つけることを期待しているようですが、このメソッドを呼び出すときにユーザーの ID が常に変化するため、もちろん作成できません。
私はこれを正しく理解していますか?はいの場合、標準の CI URL はコントローラー/メソッド/パラメーターのように形成されていると思っていたので残念です...フォーム検証クラスは最初の 2 つの URI セグメントのみを考慮すると思いますか?!
参考までに、user.update メソッドに次のように記述すると、検証ルールが正常に機能します。
$this->form_validation->run('user/update')
したがって、私の質問は、ルールの自動ロードを正しく理解したかどうか、およびいくつかのパラメーターを持つメソッドであってもそれらのルールを自動ロードするためにできることがあるかどうかです。
事前にどうもありがとうございました。