我在尝试为我的项目追溯创建新的基本控制器时遇到了一些困惑。如果我没记错的话,我需要做的就是在中创建一个文件 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”...

我在这里缺少什么?

有帮助吗?

解决方案

一些摆弄之后,我认为以下是我的解决方案...

MY_baseController.php并进入application/libraries移动application/controllers。重命名为base.php和更改以下行:

class baseController extends Template_Controller

class Base_Controller extends Template_Controller

现在您的FrontPage控制器内,延伸的,而不是Base_Controller baseController

其他提示

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

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

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

我知道这是一个老问题,但我想我美言几句。你只需要从文件名称中删除MY_前缀为您扩展系统中的文件夹_Core后缀一个类时,只有真正需要它。例如,对于文件

class Controller extends Controller_Core

将被命名为MY_Controller.php。

在这种情况下,刚刚命名的文件baseController.php并把它在库中的文件夹会工作。

没有违法,但我不得不一声我的电脑上我的头,把它与Kohana的3.1工作。我终于找到了该延长模板控制器语法应该是:

class Controller_Base extends Controller_Template
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top