1

我想在 beforeAction 方法(Yii 框架)中注册一个脚本。但我不想在每个控制器中重复该方法,所以我的问题是如何创建一个所有控制器都将继承的 beforeAction()?

谢谢,

4

3 回答 3

0

默认 yiic 生成的 yii webapp 在project/protected/components/Controller.php中有一个 Controller 类,应用中的所有控制器都继承自这个 Controller。

该类是添加beforeAction.

编辑:如果你没有使用 yiic 并且没有这个默认的 Controller 类,可以添加一个从 CController 扩展的新类,然后让你的控制器从这个新类扩展。您可以将控制器的所有通用功能保留在此父控制器类中。

于 2012-11-26T12:59:16.613 回答
0

您需要在 components 目录中创建 BaseController.php。在这个文件中,您将从 CController 继承您的 BaseController。在那里写下你的 beforeAction。在此之后,您将需要从 BaseController 继承所有控制器。

于 2012-11-26T13:00:02.163 回答
0

1) 创建带有 CController 扩展的通用父控制器(例如 SomeController)

2)在这个Controller的beforeAction()中注册脚本(例如SomeController)

3)扩展您的站点控制器或模块控制器的这个控制器。

<?php

class SomeController extends CController
{
    public function beforeAction()
    {
        // Your Register Script
    }
}


class SiteController extends SomeController
{
    // public function actionIndex
}
于 2012-11-26T13:04:54.983 回答