Ребята У меня есть следующая структура в моем проекте.Zend Framework вопрос об отдыхе и модулях
application/
Bootstrap.php
configs/
application.ini
modules/
default/
controllers/
models/
views/
Bootstrap.php
main/
controllers/
UserController.php
forms/
models/
resources/
validate/
views/
scripts/
user/
complete-registration.phtml
index.phtml
register.phtml
Bootstrap.php
rest/
controllers/
LoginController.php
models/
views/
Bootstrap.php
Теперь проблема. Я определил несколько действий в UserController.php, которые, по моему мнению, не имеют доступа. Напр. если я перейду в localhost/main/user/register, я не могу это получить. Однако я просматриваю localhost/main/user, он работает.
Я понятия не имею, что это может быть, но моя дикая догадка - это то, что связано с моим Bootstrap.php. Во время отладки я прокомментировал, что маршрут останова инициализирован в основном bootstrap.php, и он, похоже, сработал. Я дал все файлы, на которые, я думаю, повлиял это. Если бы я мог знать, что это могло бы быть, это было бы потрясающе. Уже потратили, как несколько дней, пытаясь понять это.
Bootstrap.php
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
// Commenting this seems to make the module auto initializing work.
protected function _initRestRoute()
{
$this->_logger->info('Bootstrap ' . __METHOD__);
$this->bootstrap ('frontController');
$frontController = Zend_Controller_Front::getInstance();
//$restRoute = new Zend_Rest_Route ($frontController);
//$frontController->getRouter()->addRoute ('default', $restRoute);
$restRoute = new Zend_Rest_Route($frontController, array(), array('rest'));
$frontController->getRouter()->addRoute('rest', $restRoute);
}
}
Главная/Bootstrap.php
<?php
class Main_Bootstrap extends Zend_Application_Module_Bootstrap
{
}
Главная/Контроллеры/UserController.php
<?php
class Main_UserController extends Zend_Controller_Action
{
protected $_model;
public function init()
{
// Get the default model
$this->_model = new Main_Model_User();
// Add forms
$this->view->registerForm = $this->getRegistrationForm();
}
public function indexAction()
{
}
public function registerAction()
{
}
public function completeRegistrationAction()
{
$request = $this->getRequest();
if (! $request->isPost())
{
return $this->_helper->redirector ('register');
}
if (false === $this->_model->registerUser ($request->getPost()))
{
return $this->render ('register');
}
}
public function getRegistrationForm()
{
$urlHelper = $this->_helper->getHelper ('url');
$this->_forms ['register'] = $this->_model->getForm ('userRegister');
$this->_forms ['register']->setAction ($urlHelper->url (
array (
'controller' => 'user',
'action' => 'complete-registration'
),
'default'));
$this->_forms ['register']->setMethod ('post');
return $this->_forms ['register'];
}
}
application.ini
[production]
autoloadernamespaces[] = "Zend_"
autoloadernamespaces[] = "SB_"
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
; front controller
resources.frontcontroller.moduledirectory = APPLICATION_PATH "/modules"
; modules
resources.modules[] =
resources.frontController.params.displayExceptions = 1
resources.db.adapter = "PDO_MYSQL"
resources.db.isdefaulttableadapter = true
resources.db.params.dbname = "****"
resources.db.params.username = "*****"
resources.db.params.password = "*******"
resources.db.params.host = "*******"
resources.db.params.charset = "UTF8"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
Просьба представить более подробную информацию об этой части: «если я иду на локальный/Главная/пользователь/регистр Я не могу получить доступ к этому. - Что происходит, когда вы пытаетесь? Можете ли вы дать код действия контроллера? Любые сообщения об ошибках? – Gordon
Yup Я дал код контроллера выше. Это ничего не значит, кроме вызова формы и отображения полной регистрации после отправки формы. – nixgadgets
Что касается «если я перехожу к localhost/main/user/register, я не могу получить доступ к этому». im получение страницы не найдена ошибка. я не могу просмотреть любые действия на любом контроллере. я считаю, что это имеет какое-то отношение к маршруту отдыха. – nixgadgets