管理画面をcakePHPで作成してみた
誰でもaddやeditやdeleteできないようにAuth コンポーネントを使用して管理画面を作成する
参考サイト:http://book.cakephp.org/ja/view/172/Authentication★ コメントアウトする
config/core.php
Configure::write('Routing.admin', 'admin');
★ コントローラーfunctionの add と delete と edit の前にそれぞれ admin_ をつける
例)
function admin_add(){
}
★ ビューの名前もそれぞれ変更する
add.ctp→admin_add.ctp
★ データベースに新しくログイン用のテーブルを作成する
CREATE TABLE users (
id integer auto_increment,
username char(50),
password char(50),
PRIMARY KEY (id)
);
★ viewsの下に新しくusersフォルダを作成してadmin_login.ctpを作成する
check('Message.auth')) $session->flash('auth');
echo $form->create('User', array('action' => 'login'));
echo $form->input('username');
echo $form->input('password');
echo $form->end('Login');
?>
★ controllerの下にuser_controller.phpも作成
layout=('test');
}function admin_logout() {
$this->Session->setFlash('ログアウトしました');//必要に応じて
$this->redirect($this->Auth->admin_logout());
}}
★ app_controller.phpにも記述する
class AppController extends Controller {
var $components = array('Auth'); //これが適用されているactionすべてで認証が行われるfunction beforeFilter() {
$this->Auth->allow('index','view','admin_logout');//認証確認してほしくないaction名を記述する
}
}!すべてのコントローラーはこのAppControllerを継承しているので、ここに共通のものはここに記述すると楽!
アクセスの仕方
ルートディレクトリ/admin/コントローラー名/指定したいアクション名
!注意!
パスワードはハッシュ化したものを登録する!
SQL文を見るとハッシュ化されたものが表示されているので、それを見ればいいと思います
参考サイト:http://www.garacter.com/notes/CakePHP+Note:AuthComponent/pi:231
主要なコンポーネント:http://book.cakephp.org/ja/view/170/Core-Components
ビューでのいろんな変更
★ 見た目などの変更する場合はフォームヘルパーのオプションで変更するのではなく、cssで変更してあげるフォームヘルパーで記述すると
echo $form->input('tel');
↓
<input id="ShopTel" type="text" value="6366" name="data[Shop][tel2]" />
というタグが作成されます。
フォームヘルパーでオプションをつけて、見た目を変更する事も可能ですが、
cssを使用して、変更する方がいいみたいです。
★ 読み込むcssに記述する
#ShopTel {
width: 15%;
}
memo
・コントローラーの補佐
→コンポーネント・モデルの補佐
→ビヘイビア・ビューの補佐
→ヘルパー!これらを独自で汎用的に作成して、色々な事に使いまわしできるようにする!
・StartUpは、コンポーネントが定義されたときに呼び出されるメソッド
・わからないことがあれば、クラスとかのソースを見に行って追いかけてみればいいという!
まったく難しいですね。
訓練します。
・勉強先の会社でいきなり謎の黒枠が出現しました。
ユニバーサル何とかと言って、目の不自由な人でも使えるようにというファンクションみたいです
→コマンド + F5で on/off で切り替えられます
・cssとかも少しは勉強した方がいいのかな・・・と思った
・ラクシュミのカレーはおいしいけど、破壊力抜群。
英単語
authorized:権限