我在Zend Project中创建了一个模块(person)。然后在该模块中创建了一个控制器(PersonController.php)。然后在该控制器中创建了一个动作(addAction)。但是当我使用http://myproject.dev/person/person/add
时,它什么都没有显示。
http://myproject.dev/
指向我的zendproject的公共文件夹,因此当我使用http://myproject.dev/
时,它成功地向我显示了索引页面。但它不适用于我的模块。
我已经看到某个地方我们必须配置 application.ini 和 Bootstrap.php 告诉zend我们的模块目录,但我不知道如何。这些陈述是什么?
我当前的目录是这样的:
zendproject|
|-> application
|-> models
|-> modules
|-> person
|->controllers
|-> PersonController.php
答案 0 :(得分:11)
尝试做下一件事:
1)application.ini
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
2)在每个模块中创建Bootstrap:
class Person_Bootstrap extends Zend_Application_Module_Bootstrap {
}
答案 1 :(得分:2)
我认为您只需在application.ini上添加模块配置
即可resources.modules[] =
就是这样。
答案 2 :(得分:2)
在Bootstrap中执行此操作的代码方式如下:
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->returnResponse(true);
$frontController->setControllerDirectory(
array(
'default' => '/path/to/application/controllers',
'person' => 'path/to/application/person/controllers'
)
);
$response = $frontController->dispatch();
$response->sendResponse();
请参阅http://framework.zend.com/manual/en/zend.controller.front.html(特别是查找子标题'setControllerDirectory()和addControllerDirectory')
答案 3 :(得分:0)
我不知道为什么,但我只需要添加下面的行只是为了让它正常工作:
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"