【问题标题】:CakePHP Controller Action not RenderingCakePHP 控制器动作未呈现
【发布时间】:2013-08-19 22:22:56
【问题描述】:

我有一个 CakePHP 动作,它没有呈现它的视图,但是该动作正在执行。

我有控制器 VoteTagsController 和操作 alltags()

App::uses('AppController', 'Controller');

class VoteTagsController extends AppController {

    public function index(){
        $this->set('allVoteTags', $this->VoteTag->find('all'));
    }

    public function alltags(){
        echo "Running";
        echo "Test";        
    }     
}

视图也存在于 /View/VoteTags/alltags.ctp

我正在尝试从 http://test_site.dev/votetags/alltags 加载操作

我已经尝试了所有方法,但无法渲染此视图。我只是得到一个白页,没有错误。

但是,更改控制器的名称并刷新会将我发送到错误未找到页面,该页面指示正在触发该操作但未呈现。

有什么想法吗?

【问题讨论】:

  • 试试 $this->render('alltags');
  • 没什么,只是一个

    标签,上面的建议都不起作用

  • 视图文件的路径是什么?

标签: php cakephp web frameworks


【解决方案1】:

根据约定,您的 URL 应为 test_site.dev/vote_tags/alltags 如果您想更改此设置,您可以在您的 app/Config/routes.php 文件中添加以下行

Router::connect('/votetags/alltags', array('controller' => 'vote_tags'))

或您可能喜欢的任何其他 url 模板。 更多信息请阅读http://book.cakephp.org/2.0/en/development/routing.html

【讨论】:

  • 我似乎仍然有同样的问题,我是否也应该更改控制器名称?
  • 1.您可以通过test_site.dev/vote_tags/alltags 访问查看页面吗? 2.你有调试设置为0吗? 3.你有关闭php错误吗?
  • 我打开了错误,是的,我点击了同一个页面,但仍然没有渲染
  • 您没有说明您是否将调试设置为 0。如果您的视图未呈现,您应该会收到某种类型的消息。你把你的视图文件放在哪里?它应该在 app/Views/VoteTags/alltags.ctp
猜你喜欢
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
相关资源
最近更新 更多