这是文件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获取错误,在这种情况下,设置包含posts数组的变量的正确名称(数据库与博客教程相同) )第二个问题是如何在index.ctp中显示从查询中获得的数据?在示例中,我以这种方式迭代
<?php foreach ($posts as $post): ?>
并获得我必须写的元素
<?php echo $post['Post']['title']?>
但在我的情况下?
是否可以声明函数tha在模型中返回查询结果,然后在控制器中调用它并在someview.ctp中显示数据?
答案 0 :(得分: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
的变量中可访问数据。