【发布时间】:2015-09-26 23:02:25
【问题描述】:
我想做一个 rss,我关注了这个http://book.cakephp.org/3.0/en/views/helpers/rss.html。但是事情不正常,因为当访问rss的路由器时,它返回一个控制器错误,说控制器不存在。我的路线是这样的:
/posts/index.rss
当做这个请求时,它会返回一个找不到控制器的错误。
The action index.rss is not defined in PostsController
我声明“应用程序”接受 rss..我的完整 config/routes.php
use Cake\Core\Plugin;
use Cake\Routing\Router;
Router::defaultRouteClass('Route');
Router::scope('/', function ($routes) {
Router::extensions(['json', 'xml', 'rss']);
$routes->connect('/', ['controller' => 'Fronts', 'action' => 'index']);
$routes->connect('/contact', ['controller' => 'Fronts', 'action' => 'contact']);
$routes->connect(
'/:controller/:action/:id-:slug',
[],
[
'pass' => ['id', 'slug'],
'id' => '[0-9]+',
'routeClass' => 'DashedRoute'
]
);
$routes->fallbacks('InflectedRoute');
});
Plugin::routes();
我还在控制器的::initialize()中做了LoadComponent
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler');
}
还有我的控制器
class PostsController extends AppController
{
...
public function index()
{
...
if($this->RequestHandler->isRss()) :
$_rss = $this->Posts->find()->limit(20);
$this->set(compact('_rss'));
return;
endif;
...
}
}
怎么了?
谢谢..!!!
【问题讨论】:
-
真的
/plosts/index.rss?不应该是/post/index.rss吗? -
对不起,我写错了:) ...是/post/index.rss
-
您将
Router::extensions('rss');放在/config/routes.php中?/logs/中还有其他错误消息吗?您是否在src/Template/Posts/rss/index.ctp中创建了视图文件? -
是的,把它放在...Router::extensions(['json', 'xml', 'rss']);
-
视图也已创建...仅给出错误未找到控制器...在我的调试器中->请求显示此插件(空)控制器帖子操作 index.rss _ext(null) pass( empty) isAjax(false) _ext 应该是 _ext(xml) 还是 _ext(rss) ?
标签: cakephp controller rss components cakephp-3.0