私はcodeigniterを学ぼうとしていますが、何らかの理由で最も単純なことを行うことができません。
基本的に私はログインページでフォームを作成しています。しかし、私は得ています
致命的なエラー:5行目のA:\ work \ codeigniter \ ci \ application \ views \ pages \ login.phpにある未定義の関数validation_errors()を呼び出します
そして、validation_errors行をコメントアウトすると、次のようになります。
致命的なエラー:5行目のA:\ work \ codeigniter \ ci \ application \ views \ pages \ login.phpにある未定義の関数form_open()を呼び出します...
エラーメッセージ
( ! ) Fatal error: Call to undefined function validation_errors() in A:\work\codeigniter\ci\application\views\pages\login.php on line 3
Call Stack
# Time Memory Function Location
1 0.0004 697328 {main}( ) ..\index.php:0
2 0.0010 790176 require_once( 'A:\work\codeigniter\ci\system\core\CodeIgniter.php' ) ..\index.php:202
3 0.0135 2313080 call_user_func_array ( ) ..\CodeIgniter.php:359
4 0.0135 2313160 Pages->view( ) ..\CodeIgniter.php:359
5 0.0135 2313288 CI_Loader->view( ) ..\pages.php:9
6 0.0135 2314232 CI_Loader->_ci_load( ) ..\Loader.php:419
7 0.0138 2363392 include( 'A:\work\codeigniter\ci\application\views\pages\login.php' ) ..\Loader.php:833
これは私のコードです:
view\pagesにあるlogin.php
<?php echo validation_errors(); ?>
<?php echo form_open('user/login') ?>
<label for="Id"> User Id</label>
<input type="input" name="Id" /> <br/>
<label for="Password">User Password</label>
<input type="input" name="Password" />
<br/>
<input type="submit" name="submit" value="log in" />
</form>
コントローラにあるuser.php\
<?php
class User extends CI_controller{
public function login()
{
$this->load->helper('form');
$this->load->library('form_validation');
//i have a file views/pages/main.php which just says "this is main"
$this->load->view('pages/main');
}
}
controllers/にあるpages.php
<?php
class Pages extends CI_Controller{
public function view($page){
if(!isset($page)||!file_exists("application/views/pages/$page.php")){
show_404();
}
$this->load->view("pages/$page");
}
}
config/にあるroutes.php
$route['default_controller'] = "pages/view";
$route['(:any)']="pages/view/$1";
$route['404_override'] = '';
これは私が起こると思うことであり、私が間違っている場合は、私を訂正してください。form_open('user / login')は、htmlフォーム要素の "action"が、コントローラーにあるクラス"user"のメソッド"login"を指すようにします。
また、私はたくさんグーグルで検索しましたが、このエラーが発生した他のほとんどの人は、エラーが発生していなかったためにエラーが発生していました。
$this->load->helper('form');
$this->load->library('form_validation');
また、form_openの文字列が、htmlフォーム要素の「action」属性の場所を指していません。フォームヘルパーとフォーム検証ライブラリをそこにロードする必要があるのはなぜですか?誰かがこれの流れを説明できますか?