English 中文(简体)
在这种形势下,提出一个模式的替代办法
原标题:alternative for calling a model from view in this situation
  • 时间:2012-05-25 14:58:13
  •  标签:
  • php

我知道我们应该从控制器调用模型 不是从视野,而是从我 处于我不得不这样做的状态

现为:

我有一个博客脚本, 在每个用户主页的用户主页上,

所以我的控制器看起来像

function get_posts($user_id){

   $blog_model = $this->load->model( bloging );
   $posts      = $blog_model->get_user_posts();
   $this->load->view( blog  , $posts )
}

Each post could have many comments so i have to get them too

所以在我看来

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;
  //////


}

我现在不这样做,因为我不得不使用助手或图书馆, 或使用模型中的静态方法来做到这一点(im使用代码化,

但我还有别的选择吗?

我可以在控制器中做到这一点, 在得到文章使用前方环绕并获得每个文章注释后, 将所有注释都放入 2d 数组( $$c_array[post_id][it s 批注数组] ) 。

发送他们到视图中, 加上文章, 并在每个柱子的视图中, 查看阵列, 以查看它的评论和....

但它的接缝复杂, 多余和慢慢

i 已有4个加入后查询, 2个加入后查询, 如果我加入后2个加入后2个加入后查询,7个将是7个。

and also there is different limit for select in two query I m fairly new to mvc . what is the right approach in this kind of situations ?

问题回答

通常您会使用 < code> post 模式获取该文章的评论。 此外,我通常会使用一种方法确保将评论加入到这些文章中,这样您就不会为每个文章发布评论查询。

我猜你为此创建了自己的MVC系统, 所以我不知道你会如何执行。我使用Zend Framewer, 这样我就可以告诉你如何使用它。

从视图中访问模型没有本质上的错误, 只要只读到访问, 但最好尽量将代码从您的脚本中排除。 为此, 在您的情况中, 我会使用 < a href=" http://framework.zend.com/ manual/en/zend.view. helps.html" rel=“ nofollow” >view helfer 和 < a href=" http://framework.zend.com/manual/en/zend.view. helpers. html#zend.view. helpers. custure" rel=“ nofollow” 写您自己的观点助手 < / a> 在 ZF 中相当简单。 如果您想使用这种方法, 我将留给您来调整您的 MVC 。

这意味着您可以抽取代码, 以便从视图脚本中获取一份注释列表, 并替换为 :

echo $this->getComments($messageID);




相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签