View 使用路由器时Phalcon不呈现视图操作

View 使用路由器时Phalcon不呈现视图操作,view,routes,action,phalcon,View,Routes,Action,Phalcon,我对Phalcon PHP有一个问题。与路由一起使用时,它无法显示控制器操作的视图 例如: use Vokuro\Models\Terms; use Vokuro\Models\Games; class FrontendController extends ControllerBase { public function gamedetailAction($slug, $id) { echo "This is gamedetail Action";

我对Phalcon PHP有一个问题。与路由一起使用时,它无法显示控制器操作的视图

例如:

use Vokuro\Models\Terms;
use Vokuro\Models\Games;

class FrontendController extends ControllerBase
{

    public function gamedetailAction($slug, $id) {

        echo "This is gamedetail Action";
        $game = Games::findFirstById($id);

        if (!$game) {
            $this->flash->error("Game does not exist");
        }
        else {
            $this->view->game = $game;
            $this->view->screenshots = $game->screenshot;
       }
    }

}
{{ game.title }
{{ content() }}
结果只是显示了gamedetail action的文本:“这是gamedetail action”,而不是视图中的游戏标题

app/config/routes.php

$router = new Phalcon\Mvc\Router();
$router->add("/game/([a-z0-9\-]+)-([0-9]+).html", array(
    'namespace' => 'Vokuro\Controllers\\',
    'controller' => 'Frontend',
    'action' => 'gamedetail',
    'slug' => 1,
    'id' => 2
))->setName("game-detail");
use Vokuro\Models\Terms;
use Vokuro\Models\Games;

class FrontendController extends ControllerBase
{

    public function gamedetailAction($slug, $id) {

        echo "This is gamedetail Action";
        $game = Games::findFirstById($id);

        if (!$game) {
            $this->flash->error("Game does not exist");
        }
        else {
            $this->view->game = $game;
            $this->view->screenshots = $game->screenshot;
       }
    }

}
/app/controllers/FrontendController.php
use Vokuro\Models\Terms;
use Vokuro\Models\Games;

class FrontendController extends ControllerBase
{

    public function gamedetailAction($slug, $id) {

        echo "This is gamedetail Action";
        $game = Games::findFirstById($id);

        if (!$game) {
            $this->flash->error("Game does not exist");
        }
        else {
            $this->view->game = $game;
            $this->view->screenshots = $game->screenshot;
       }
    }

}
app/views/frontend/gamedetail.volt

use Vokuro\Models\Terms;
use Vokuro\Models\Games;

class FrontendController extends ControllerBase
{

    public function gamedetailAction($slug, $id) {

        echo "This is gamedetail Action";
        $game = Games::findFirstById($id);

        if (!$game) {
            $this->flash->error("Game does not exist");
        }
        else {
            $this->view->game = $game;
            $this->view->screenshots = $game->screenshot;
       }
    }

}
{{ game.title }
{{ content() }}
应用程序/视图/布局/前端.volt

use Vokuro\Models\Terms;
use Vokuro\Models\Games;

class FrontendController extends ControllerBase
{

    public function gamedetailAction($slug, $id) {

        echo "This is gamedetail Action";
        $game = Games::findFirstById($id);

        if (!$game) {
            $this->flash->error("Game does not exist");
        }
        else {
            $this->view->game = $game;
            $this->view->screenshots = $game->screenshot;
       }
    }

}
{{ game.title }
{{ content() }}
检查事项:

  • 服务器上的视图具有正确的读/写权限
  • 我认为Phalcon对命名是区分大小写的。注意你是如何使用“前端”和“前端”的
需要检查的事项:

  • 服务器上的视图具有正确的读/写权限
  • 我认为Phalcon对命名是区分大小写的。注意你是如何使用“前端”和“前端”的

  • 那太好了!我将路由器配置中的“前端”改为“前端”,它可以工作。我只想指出,在匹配模板名称时,phalcon控制器/路由器是不区分大小写的,Volt/View是区分大小写的(如我的phalcon 1.3.2版本)。这太棒了!我将路由器配置中的“前端”改为“前端”,它可以工作。我只想指出,在匹配模板名称时,phalcon控制器/路由器是不区分大小写的,Volt/View是区分大小写的(如我的phalcon 1.3.2版本)。