我知道我们应该从控制器而不是视图调用模型,但我处于必须这样做的情况
这里是 :
我有一个博客脚本,在每个用户主页中,我想为每个帖子显示 10 条帖子和 5 条评论
所以我的控制器看起来像
function get_posts($user_id){
$blog_model = $this->load->model('bloging');
$posts = $blog_model->get_user_posts();
$this->load->view('blog' , $posts )
}
每个帖子都可能有很多评论,所以我也必须得到它们
所以在我看来我有
foreach($posts->result() as $p ){
echo $p->comment;
/// getting comments
$comment_model = $this->load->model('comments');
$co = $comment_model->get_post_comments($p->id);
foreach($co as $co )
echo $co->comment;
//////
}
我现在这不起作用,因为我必须使用帮助程序或库或在模型中使用静态方法来执行此操作(我正在使用 codeigniter,对于其他框架作品可能会有所不同)
但我有什么选择?
我可以在控制器中执行此操作,在获取帖子后使用 foreach 循环并获取每个帖子评论,将所有评论放入二维数组($c_array[post_id][it's comments array]
)
将它们发送到带有帖子的视图,并在每个帖子的视图中查看数组中的评论和.......
但它接缝复杂、多余且速度较慢
我已经在帖子查询上有 4 个连接,在评论查询上有 2 个连接,如果我加入这两个,那将是 7
而且在两个查询中 select 也有不同的限制我对 mvc 还很陌生。在这种情况下正确的方法是什么?