0

フォームを処理する MY_Controller 内にコールバック関数がある場合:

class MY_Controller extends CI_Controller{

    function login(){
        $this->form_validation->set_rules('username', 'Username', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');

        if ($this->form_validation->run() == true){
            //do something
        }
    }

}

ビューでフォームヘルパーを使用して参照するにはどうすればよいですか?

echo form_open('?/login');

この背後にある理由は、対応するコントローラーを持たないヘッダー テンプレート内にログイン フォームがあり、各ビューの前に読み込まれているためです。セッション データが設定されている場合、JS でログイン フォームを非表示にしているため、コールバックを MY_Controller 内に配置するのが最も合理的と思われます。フォーム ヘルパー クラスでアクセスする方法がわかりません。助言がありますか?

4

3 に答える 3

2

login()の内部に配置MY_Controllerして拡張しているCI_Controllerため、すべてのコントローラーがそのメソッドを取得します。次に、 を使用$this->router->fetch_class();して現在のコントローラーの名前を取得し、それを の前に追加できます/login

元。

var $controller = $this->router->fetch_class();
echo form_open($controller.'/login');
于 2013-06-13T12:34:58.433 に答える
0

2つのライブラリを追加-

 $this->load->helper('form');
 $this->load->library('form_validation');

コントローラーコンストラクターでこれを追加します

echo form_open('MY_Controller/login');

ビューで

于 2013-06-13T12:34:46.347 に答える
0

のようなlogin()機能にアクセスできますMY_Controller

form_open('default_controller_name/login');

login()あなたの中に機能がない場合 default_controller

于 2013-06-13T12:35:54.777 に答える