2011-06-25
vol.5 Kohana - ログイン画面の表示
画面の作成
ログイン画面でも作りますか。
デザインも何もなし。ユーザIDとパスワードだけの超シンプルな作り。こんなん。
中身は適当に、こんな感じで。
<div>
<form action="login" method="post" name="fm_login">
<label for="user">ユーザID </label>
<input type="text" id="user" name="user" maxlength="10" value="" autofocus><br>
<label for="pass">パスワード</label>
<input type="password" id="pass" name="pass"><br><br>
<input type="submit" value="ログイン">
</form>
</div>
C:/xampp/htdocs/kohanaTest/application/views/view_login.php
これをviewsフォルダに格納する。
ファイル名は何でもいいんですが、コントローラと区別つくように先頭に「view_」でも付けますか。
もちろん付けなくてもいい。
先にHTMLで作っておいて、その後に拡張子を「.php」に変えるほうが慣れるまでいいかも。
画面の表示
次に表示というか呼び出し方。
これはそのシステムでもサービスでも一番最初に表示させるのがこのログイン画面の場合を前提にして書く。
kohanaフレームワークはHMVCを採用しているので、画面はコントローラを介して呼び出される。
一番最初の呼び出しは、vol.3でやった通り、bootstrap.phpでの設定となる。
ファイルの一番下にある記述。
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'welcome',
'action' => 'index',
));
bootstrap.php
この
'controller' => 'welcome',
を
'controller' => 'login',
にする。
こうすることによって、Controller_Loginクラスのaction_indexメソッドが呼び出されるようになるので、
次にLoginクラスを作成する。
Controller_Login
controllerフォルダにファイル名「login.php」を作成し、以下の内容を記述する。
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Login extends Controller {
public function action_index() {
$this->response->body(View::factory('view_login'));
}
} // End Login
C:/xampp/htdocs/kohanaTest/application/classes/controller/login.php
前のwelcome.phpと違うのは、bodyに記述する内容。
前のは「hello, world」という文字列をHTMLのbodyに書く感じ。↓みたいな。
$this->response->body('hello, world!');
今回のは文字列ではなくて、ファイルを呼び出すイメージ。
$this->response->body(View::factory('view_login'));
View::factoryメソッドで「view_login.php」を呼び出している。
所定の場所・・・viewsフォルダに格納しておけば、View::factoryメソッドでファイル名の指定だけで呼び出せる。
もちろん、サブディレクトリの場合も「View::factory('sub/view_login')」という感じで呼び出せる。
これで、http://localhost/kohanaTest/ に行くと、一番上のログイン画像の通りに表示ができているはず。
トラックバック - http://d.hatena.ne.jp/akijikan/20110625/1309016478