我想检查tbl“是否存在数据?”。如果 tbl 中不存在数据,我想重定向到一页。如果不在所有控制器的操作中放置相同的代码,我该怎么办?
if(Company::model()->exists() == false)
$this->redirect(array('site/create'));
如果您想在每个控制器的每个操作之前运行此逻辑,您可以覆盖run
基本控制器类的方法(通常这被命名为Controller
;您会在protected/components/
目录中找到它)。
以下是如何执行此操作的示例:
public function run($actionID) {
if ($this->route != 'site/create' && Company::model()->exists() === false) {
$this->redirect('site/create');
}
else {
parent::run($actionID);
}
}
所以你想执行一个查询,如果没有结果重定向到另一个页面?
$model = YourModel::model()->find("your query goes here");
if (empty($model)){
$this->redirect("redirect/url/here");
}
如果您想在每个“加载”页面上执行此操作,您可以通过创建如下所示的init函数将其放入 Controller.php(protected/components/Controller.php ):
public function init() {
// anything here will be executed when any controller/action is called
}