CakePHP-教程ACL扩展

CakePHP-教程ACL扩展,php,cakephp,Php,Cakephp,我尝试扩展教程中简单的ACL控制的应用程序()。我希望添加表类别,以便表: CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL UNIQUE, password CHAR(40) NOT NULL, group_id INT(11) NOT NULL, created DATETIME, modified DATETIME ); CREATE T

我尝试扩展教程中简单的ACL控制的应用程序()。我希望添加表类别,以便表:

CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL UNIQUE,
password CHAR(40) NOT NULL,
group_id INT(11) NOT NULL,
created DATETIME,
modified DATETIME
);


CREATE TABLE groups (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
created DATETIME,
modified DATETIME
);


CREATE TABLE posts (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
user_id INT(11) NOT NULL,
category_id INT(11) NOT NULL,
title VARCHAR(255) NOT NULL,
body TEXT,
created DATETIME,
modified DATETIME
);

CREATE TABLE categories (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL
);
现在我在app/view/Posts和app/view/Categories中有add.ctp、edit.ctp、index.ctp和view.ctp。登录后可以访问这些方法。但是现在我想为未登录的用户按类别显示一些菜单和帖子。单击主菜单中的Category1后,它将仅显示Category1中的帖子。大概是这样的:

Main menu: **Category1** | Category2 | Category3

  Title of post1 in Category1
  Body of post1 in Category1

  Title of post2 in Category1
  Body of post2 in Category1
  ..........

Main menu: Category1 | **Category2** | Category3

  Title of post1 in Category2
  Body of post1 in Category2

  Title of post2 in Category2
  Body of post2 in Category2
  ..........

我不知道该怎么做。是否将一些.ctp文件添加到app/View/Posts?还是别的什么?谢谢您的帮助。

这将允许在控制器中键入的所有方法对未登录的用户可用

在PostsController中:

编辑:

并在浏览器中访问page.com/posts/yourmethod/2

在视图文件中,您将获得访问数据的变量$posts


当然,我尽可能地简化了它。

但我不知道在点击Category1菜单后如何为用户呈现Category1中的所有帖子。我不知道你们是否收到编辑答案的通知,所以我会在这里写:D
public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow(array('methods','in-my-controller','which-will-be-allowed-for-not-logged'));
}
public function yourmethod($categoryId = null) {
    $posts = $this->Post->find('all', array(
        'conditions' => array(
            'Post.category_id' => $categoryId
        )
    ));
    $this->set(compact(posts));
}