除了Phalcon php中的indexAction之外,无法调用indexController的动作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了除了Phalcon php中的indexAction之外,无法调用indexController的动作相关的知识,希望对你有一定的参考价值。
我在xampp / htdocs目录中有一个名为phalcon的简单项目,我将apache配置为指向该文件夹,以便我可以在浏览器中进入phalcon /。
当我尝试打开索引以外的索引控制器视图(默认)时,会发生此问题。 例如,我在索引控制器中有someAction,在views / index中我有some.phtml。 如果我去phalcon / index / some我没有把some.phtml的文本输出到页面。 这可能是因为它认为我不想打开IndexController-> indexAction并将一些作为参数传递。
将不胜感激为解决此问题提供任何帮助。 附:项目骨架是从https://github.com/phalcon/skeleton-single复制的。
指数控制器:
<?php
class IndexController extends ControllerBase
{
public function indexAction($action = null)
{
}
public function someAction () {
exit('test');
}
}
views / index / index.phtml:
<?php echo $this->getContent(); ?>
视图/索引/ some.phtml:
Some Action
意见/ index.phtml
<!DOCTYPE html>
<html>
<head>
<title>Phalcon PHP Framework</title>
</head>
<body>
<?php echo $this->getContent(); ?>
</body>
</html>
我不确定我是否完全理解你的问题,但我认为你的Action必须与视图中的文件夹/文件匹配才能正常运行。
另外,我看到你扩展了'ControllerBase'然后在控制器文件中有一个名为'ControllerBase'的文件:
class ControllerBase extends PhalconMvcController
您可以检查的另一件事是公用文件夹中的index.php。大多数情况下,这些事情发生是因为DI丢失或输入错误。
我想,您应该检查.htaccess文件以获取以下规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
这将启用所有其他控制器操作,而不仅仅是索引。要检查问题是否在此规则中,您可以通过url /index.php?_url=/index/some访问控制器方法 - 如果要加载,请更改.htaccess,如下例所示
不确定这是否是预期的行为,但在某些情况下,IndexController
的行动应该在Index/some/
等资本案件中被请求,当index/some/
将返回未找到的响应时。
尝试使用自定义路由。
如果您正在使用骨架项目,则可以按如下方式完成此操作,但概念对于任何其他应用程序都是相同的。
创建文件app / config / routes.php
/**@var $router PhalconMvcRouter*/
$router = $di->get('router');
$router->add(
"/index/some",
[
"controller" => "index",
"action" => "some",
]
);
在加载services.php之后的index.php中
require __DIR__ . '/../app/config/routes.php';
please change your .htaccess settings to following one
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
class SomeController...
是你在找什么。
以上是关于除了Phalcon php中的indexAction之外,无法调用indexController的动作的主要内容,如果未能解决你的问题,请参考以下文章