0

在尝试为我的项目追溯创建一个新的基本控制器时,我有点困惑。如果我没记错的话,我需要做的就是创建一个application/libraries包含MY_baseController.php以下内容的文件:

class baseController extends Template_Controller
{
  public function __construct()
  {
    parent::__construct();
  }
}

然后重写我的其他控制器以扩展baseController而不是Template_Controller

class Frontpage_Controller extends Template_Controller

class Frontpage_Controller extends baseController

然而,当我这样做时,访问Frontpage_Controller提醒我:

找不到类“baseController”...

我在这里想念什么?

4

4 回答 4

2

经过一番摆弄,我认为以下是我的解决方案......

移入MY_baseController.phpapplication/libraries移入application/controllers。将其重命名为base.php并更改以下行:

class baseController extends Template_Controller

进入

class Base_Controller extends Template_Controller

现在在您的 Frontpage 控制器中,扩展Base_Controller而不是baseController.

于 2009-08-20T23:31:34.170 回答
0

确保您遵循 Kohana 约定以确保所有内容都能正确自动加载!模型助手和库也有类似的。

此外,如果您想保持主应用程序控制器文件夹的清洁,我建议为您的应用程序制作一个 Kohana 模块,并将所有模板和其他扩展控制器放在那里,以使它们与主控制器分开。

只是不要忘记将模块添加到您的配置文件中!

于 2009-08-23T01:54:15.323 回答
0

我知道这是一个老问题,但我想我会说一句话。您只需要从文件名中删除 MY_ 前缀,因为只有在系统文件夹中扩展以 _Core 为后缀的类时才真正需要它。例如,文件为

class Controller extends Controller_Core

将被命名为 MY_Controller.php。

在这种情况下,只需将文件命名为 baseController.php 并将其放在库文件夹中即可。

于 2009-09-14T20:32:54.307 回答
0

无意冒犯,但我不得不在我的电脑上猛敲一下才能让它与 Kohana 3.1 一起工作。我终于想通扩展模板控制器的语法应该是:

class Controller_Base extends Controller_Template
于 2011-07-17T10:23:52.137 回答