我试图为我的项目追溯创建一个新的基本控制器时遇到了一些困惑。如果我没有弄错的话,我需要做的就是在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'
我在这里缺少什么?
答案 0 :(得分:2)
经过一番摆弄后,我认为以下是我的解决方案......
将MY_baseController.php
从application/libraries
移至application/controllers
。将其重命名为base.php
并更改以下行:
class baseController extends Template_Controller
进入
class Base_Controller extends Template_Controller
现在在FrontPage控制器中,扩展Base_Controller
而不是baseController
。
答案 1 :(得分:0)
确保遵循Kohana惯例以确保所有内容都能正确自动加载!与模型助手和图书馆有关的类似。
此外,如果您想保持主应用程序控制器文件夹清洁,我建议您只为您的应用程序制作一个Kohana模块,并将所有模板和misc扩展控制器放在那里,以使它们与主控制器分开。
不要忘记将模块添加到配置文件中!
答案 2 :(得分:0)
我知道这是一个老问题,但我想我会说一句话。您只需要从文件名中删除MY_前缀,因为在系统文件夹中扩展带有_Core后缀的类时,您只需要它。例如,
的文件class Controller extends Controller_Core
将命名为MY_Controller.php。
在这种情况下,只需命名文件baseController.php并将其放在libraries文件夹中即可。
答案 3 :(得分:0)
没有冒犯,但我不得不在计算机上敲击它以使其与Kohana 3.1一起工作。我终于想出扩展模板控制器的语法应该是:
class Controller_Base extends Controller_Template