在 cakephp 中显示给定类别的项目列表
Posted
技术标签:
【中文标题】在 cakephp 中显示给定类别的项目列表【英文标题】:Show Items list from a given category in cakephp 【发布时间】:2013-11-12 07:08:42 【问题描述】:我正在使用 cakephp 2.4 开发一个新闻门户。
我有 2 个表格(类别和文章)
现在我想通过这个链接显示给定类别的文章:http://mydomain/category/2
我的类别模型:
class Category extends AppModel
var $name = 'Category';
var $hasMany = array('Article');
我的文章模型:
class Article extends AppModel
var $name = 'Article';
var $belongsTo = Array('Category');
文章控制器:
class ArticlesController extends AppController
var $name = 'Articles';
var $scaffold;
function lists()
$this->Article->recursive = 1;
$myCat = $this->Category->find('all', array('order' => 'Category.id ASC'));
return $this->Article->lists($myCat);
我的类别控制器:
class CategoriesController extends AppController
var $name = 'Categories';
var $scaffold;
function index()
$this->Category->recursive = 1;
$this->set('showCat', $this->Category->find('all'));
现在我很困惑如何显示http://mydomain/category/2
的文章列表
请帮帮我
【问题讨论】:
这个mydomain/category/2 实际上是mydomain/category/index/2。为什么不对文章列表使用新操作? 另外请告诉ArticlesController中list动作的目的是什么? 【参考方案1】:现在我很困惑如何按 /mydomain/category/2 显示文章列表
在您的类别控制器中
function index($categoryId = null)
$this->Category->recursive = 1;
if ($categoryId)
$this->set('articles', $this->Category->Article->find('all', array('conditions' => array('Article.category_id' => $categoryId)));
现在,在您的 categories/index.ctp 中,您将有 $articles 可用。
<?php
if (isset($articles))
//etc etc
【讨论】:
感谢 Guillmo Mansilla 提供的漂亮的 sn-p.... 现在我可以按给定类别显示文章...以上是关于在 cakephp 中显示给定类别的项目列表的主要内容,如果未能解决你的问题,请参考以下文章