我想在beforeAction方法(Yii Framework)中注册一个脚本。但我不想在每个控制器中重复该方法,所以我的问题是如何创建一个所有控制器都将继承的beforeAction()?
THX,
答案 0 :(得分:0)
生成的默认yiic yii webapp在 project / protected / components / Controller.php 中有一个Controller类,app中的所有控制器都从该Controller继承。
该课程是添加beforeAction
的理想之地。
编辑:如果您没有使用yiic并且没有此默认的Controller类,可以添加一个从CController扩展的新类,然后让您的控制器从这个新类扩展。您可以在此父控制器类中保留控制器的所有常用功能。
答案 1 :(得分:0)
您需要在组件目录中创建BaseController.php。在这个文件中,你将从CController继承你的BaseController。在那里写你的beforeAction。在此之后,您将需要从BaseController继承所有控制器。
答案 2 :(得分:0)
1)使用CController扩展创建公共父控制器(例如SomeController)
2)在此Controller中的beforeAction()中注册脚本(示例SomeController)
3)扩展SiteController或模块控制器的这个控制器。
<?php
class SomeController extends CController
{
public function beforeAction()
{
// Your Register Script
}
}
class SiteController extends SomeController
{
// public function actionIndex
}