【CakePHP】ログインしないと投稿できない、的な処理を作るにはAppControllerのコールバック
引き続き、「CakePHPガイドブック」を使って、CakePHPのお勉強中です。
- SNSのようにユーザ認証をした人しか閲覧できない
- 閲覧は誰でも出来るけど投稿はユーザ認証しないとできない
といった処理を作るには、app/app_controller.phpのbeforefilterに実装します。
全て処理が行われる前に、ログインしているかどうかチェック、ログイン必須の機能で、未ログインならログイン画面へ
class AppController extends Controller {
var $needAuth=false; //ログインを必須とするかどうかのフラグ
function beforeFilter(){
//セッション情報から取り出したログイン情報をセット
$auth=$this->Session->read('auth');
$this->set("auth",$auth);
//ログイン必須の機能でログインされていない場合はログイン画面へ転送
if($this->needAuth){
if(empty($auth)){
$this->redirect("/users/login");
return;
}
}
}
}
beforeFilter は、コントローラーが呼び出される前に呼び出される処理です。beforeがあるならやっぱりafterも・・・あります。
afterFilterは、コントローラーが呼び出された後に呼び出される処理です。
他にはbeforeRenderなんていう、コントローラーの処理を実行した後で、次の画面に移動する前に呼び出される処理もかけます。
Popularity: 21 %
by redgasuki 










コメントはまだありません。