【问题标题】:generate rss feed for an action with a parameter为带有参数的操作生成 RSS 提要
【发布时间】:2013-02-22 09:15:28
【问题描述】:

我需要为函数 productList 生成一个 RSS 提要,该函数根据类别创建产品的分页列表。该函数的原型是

public function productList($category){}

此函数位于 Products 控制器中。我看过有关如何生成 RSS 提要的教程。 在教程中,函数的原型是

public function index(){}

该函数没有参数。在本教程中,生成 RSS 提要的链接是 app_name/Products/index.rss。在我的情况下,这种类型的链接是不可能的,因为函数 productList 有一个参数。我想根据所选类别(该类别中的 15 个最新产品)生成一个 RSS。如何在 Cakephp 中为带有参数的函数生成 RSS。 一种方法是在会话中设置参数而不传递参数。即把$category放到session中,这样函数原型就变成了

public function productList()

然后我将不得不使用不同的函数来生成 RSS 提要并使用另一个函数来生成输出。 有没有一种方法可以使用相同的功能 productList 来生成 RSS 提要而不使用会话。 请指导我。 提前致谢

【问题讨论】:

  • Cake2.x 中正确的方法是使用查询字符串来传递参数。见RSS in CakePHP

标签: cakephp rss


【解决方案1】:

我知道的两个选项:

1] 在 url 中使用命名参数,例如example.com/controller/productList/category:2/.rss 然后可以在您的 productList 操作中以 $this->params['named']['category'] == 2

访问该类别

2] 通过路由来实现,例如在routes.php 中定义一个路由就像

Router::connect('/engines', array('controller'=>'c', 'action'=>'productList', 'engines');
Router::connect('/gears',   array('controller'=>'c', 'action'=>'productList', 'gears');

在 example.com/engines.rss url 的情况下,与 parseExtension 一起调用 productList('engines')

【讨论】:

  • 感谢您的回答。对我有用的是命名参数。我有 rss 提要,但我有一个警告,如 Entity 'nbsp' not defined in Entity, line: 2 。在工作记忆耗尽之前,我有一百个这样的警告。怎么了?请帮帮我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
  • 1970-01-01
相关资源
最近更新 更多