私は次のようなコントローラを持っています:
public function index() {
$data['content'] = 'homepage/login';
$this -> load -> view('templates/no_jsTemplate', $data);
}
index() はログインページです (最初に表示されるページ)
インデックス ページには、投稿データを に送信するフォームがあります。
public function login_user() {
$this -> load -> library('form_validation');
if ($this -> form_validation -> run('c_homepage/login_user') == FALSE) {
$this -> index();
} else {
$this -> load -> model('m_homepage');
$this -> m_homepapge -> login_user();
}
}
これを凝縮することは可能ですか?1 ページに 2 つのコントローラー関数があるのは過剰だと思いませんか?
私はこれを試しました:
public function index() {
if (!$this -> input -> post('login_user')) { // check if submit is clicked, if not then just load the data array and show the view
$data['content'] = 'homepage/login';
$this -> load -> view('templates/no_jsTemplate', $data);
} else { // if it is clicked load the library and then do the validation and then load the model if validation passes and then do the login_user business calculation
$this -> load -> library('form_validation');
if ($this -> form_validation -> run('c_homepage/login_user') == FALSE) {
$this -> index();
} else {
$this -> load -> model('m_homepage');
$this -> m_homepapge -> login_user();
}
}
}
しかし、これを行うと、ある種の無限ループに陥ります。ビューをロードする関数と、コントローラーがデータをモデルに送信する関数を持つ他のアプリケーションを作成しました。物事を行うための他のより良い方法を学びたいだけです。私の成績はこのプロジェクトに反映されます。私の主な目標は、できるだけDRYになることです. 私はより多くのバンのために少ないコードを書きたいと思っています。うまくいけば、これはあまり求めていません。