CakePHP-教程ACL扩展
我尝试扩展教程中简单的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
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));
}