我正在做博客教程(CakePHP 2.4.1)并有一个问题。
index.ctp页面要求我遍历的原因是什么(以及为什么) $ posts变量来获取数据,但view.ctp文件让我只是抓住$ post而不循环? 我在PostController.php中删除了以下操作 并且仍然可以呈现view.ctp文件,所以我认为两者没有连接。
public function index() {
$this->set('posts', $this->Post->find('all'));
}
答案 0 :(得分:2)
您正在两个控制器的功能中设置帖子:
指数()
$this->set('posts', $this->Post->find('all'));
视图()
$post = $this->Post->findById($id);
$this->set('post', $post);
如果您无法访问变量,那将会很奇怪,但似乎一切都在您的示例中正常运行
编辑:
循环遍历索引中的数组,因为数组中有多个帖子。在视图中,您只设置一个包含一个帖子的单个数组,因此无需循环访问任何内容,您可以直接获取元素。
答案 1 :(得分:0)
$this->set('posts', $this->Post->find('all'));
这将返回一系列帖子 - 注意查找('all')
$this->set('post', $this->Post->findById($id));
这将通过传递的$ id参数返回单个帖子。
你必须遍历$ posts的原因是因为它是一个数组(由find all返回),其中$ post只是findById返回的一个帖子)