0

大家好,我开始研究 cake php 框架(2.0 版),当我读完博客教程后,我尝试做一些实验,特别是我的问题是“是否可以在模型中创建查询然后在控制器并最终以这种方式在视图中显示查询结果?

这是文件 post.php(模型):

<?php

class Post extends AppModel {
    public $name='Post';
}

?>

这是posts_controller(控制器):

<?php
class PostsController extends AppController {
    public $helpers = array ('Html','Form');
    public $name = 'Posts';
    public $name = 'Articles';

    function index() {
        //$this->set('posts', $this->Post->find('all'));
        $sql="select * from posts";
        $this->set('Articles',$this->Post->query($sql));
    }
}
?>

问题是如果我第二次声明 $name 我从 cake 中获得一个错误,在这种情况下,这是设置包含帖子数组的变量的正确名称(数据库与博客教程相同)和第二个问题是如何在 index.ctp 中显示查询得到的数据??在示例中我以这种方式迭代

<?php foreach ($posts as $post): ?>

并获得一个我必须写的元素

<?php echo $post['Post']['title']?>

但在我的情况下?

是否可以在模型中声明一个返回查询结果的函数,然后在控制器中调用它并在 someview.ctp 中显示数据?

4

1 回答 1

0

问题 1:$name应该是控制器本身的名称,不确定您要使用 2 个名称做什么。只需坚持“帖子”。

问题 2:您在这里将帖子称为文章可能只是混淆了问题。

对你来说最好的事情是改变这个:

$this->set('Articles',$this->Post->query($sql));

$this->set('posts',$this->Post->query($sql));

然后模板中的引用将相同。这里发生的情况是,当调用$this->set方法时,您可以让模板访问名为 $posts 的变量中的数据。所以你目前拥有的:

$this->set('Articles',$this->Post->query($sql));

将使模板可以访问名为 的变量中的数据$Articles

于 2011-11-08T18:57:42.117 回答