我是 phalconphp 的新手,按照他们的教程,据我了解,我不需要创建特定的路由组件,并且它应该选择一条路由(如果存在)。显然我在这里可能犯了很大的错误,这意味着纠正我应该很容易!但到目前为止,唯一可以工作的 Controller 是我的indexController。
这是我的引导
<?php
try {
//Register an autoloader
$loader = new \Phalcon\Loader();
$loader->registerDirs(array(
'../app/controllers/',
'../app/models/'
))->register();
//Create a DI
$di = new Phalcon\DI\FactoryDefault();
//Setting up the view component
$di->set('view', function(){
$view = new \Phalcon\Mvc\View();
$view->setViewsDir('../app/views/');
return $view;
});
//Handle the request
$application = new \Phalcon\Mvc\Application($di);
echo $application->handle()->getContent();
} catch(\Phalcon\Exception $e) {
echo "PhalconException: ", $e->getMessage();
}
然后如果我创建自己的 FooController
<?php
class FooController extends \Phalcon\Mvc\Controller
{
public function indexAction()
{
echo "FOO";
}
public function fooAction(){
echo "FOO";
}
}
这些操作都不会被解雇。现在我实际上收到了来自服务器的404错误文档。所以我不确定我的 .htaccess 文件是否有问题,尽管这是直接从教程复制的
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
有人能看出这里有什么明显的错误吗?唯一的区别是我为indexController 设置了一个 View 。我认为 404 让我相信这更多是服务器设置的问题,也许是我的 php 代码的问题
最佳答案
您的 .htaccess 文件很好,不,如果您只想使用标准 MVC/controller/action 类型模式,则不需要任何路由文件。
您的问题是您的 http 服务器没有正确重写 URL。我不确定您使用的是哪个 http 服务器,因此,我无法提供有关修复 http 服务器本身的任何具体信息。
关于.htaccess - Phalconphp 路由不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19605809/