Yiiコントローラにおけるfilterフィルタの使い方分析

1484 ワード

この例では、Yiiコントローラにおけるfilterフィルタの使い方について説明します.皆さんの参考にしてください.具体的には以下の通りです.
フィルタリングアクションを指定します(次のprojectContext()メソッドは、新規、リスト、ページ呼び出しの管理に使用します).

public function filters()
{
  return array(
    'accessControl', // perform access control for CRUD operations
    'postOnly + delete', // we only allow deletion via POST request
    'projectContext +create index admin',
  );
}


いくつかのフィルタロジックを追加して、フィルタ方法を定義して、フィルタ方法の前に必ずfilterを加えます

public function filterProjectContext($filterChain)
{
  $prijectId = null;
  if(isset($_POST['pid'])){
    $projectId = $_POST['pid'];
  }elseif(isset($_GET['pid'])){
    $projectId = $_GET['pid'];
  }
  $this->loadProject($projectId);
  $filterChain->run();
}
public function loadProject($projectid)
{
  if($this->_project === null){
    $this->_project = Project::model()->findbyPK($projectid);
    if($this->_project === null){
      throw new CHttpException(404,'        !');
    }
  }
  return $this->_project;
}


Yiiの関連内容についてもっと興味のある読者は、「Yiiフレームワーク入門及び常用技術総括」、「php優秀開発フレームワーク総括」、「smartyテンプレート入門基礎教程」、「php対象プログラム設計入門教程」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
本稿では,Yiiフレームワークに基づくPHPプログラムの設計に役立つことを期待する.