【问题标题】:there's way to get $param from view foreach and use it in controller ? Codeigniter有没有办法从视图 foreach 中获取 $param 并在控制器中使用它?代码点火器
【发布时间】:2015-12-26 20:52:01
【问题描述】:

我正在使用 codeigniter 3.0.3

而且我在项目的多个部分都面临问题

例如,在我看来,有一个 foreach 循环来显示帖子

我想在第一个循环中通过 post-id 为 cmets 执行另一个 foreach,但我不能,因为 post_id 在 foreach 循环内可见,我无法传递类似的参数

$data['postcmets'] = $this->model->function($post_id);

这是我的看法

            <?php if($allposts): ?>
                <?php foreach ($allposts as $post): ?>
                    <div class="panel panel-default">
                        <div class="panel-body">
                            <div class="col-md-12 text-muted"><small><?=$post->post_text?></small></div>
                            <div class="col-md-12 text-muted"><small><?=$post->post_id?></small></div>
                        </div>
                    </div>
                <?php endforeach; ?>
            <?php endif; ?>

通过 cmets 表中的 post_id 可以或如何为每个帖子中的 cmets 执行 foreach

Comments_table 列

+-------------+---------+---------+
|commenter_id | comment | post_id |
+-------------+---------+---------+

【问题讨论】:

  • 显示控制器和型号代码。
  • @Dray 我在视图中发布了 $post foreach ,这是可行的,但是要在 $post 循环中获取每个帖子的 cmets 我不能
  • 请给我看你所有的代码。
  • @Dray 这是我来自控制器、视图和模型的所有代码stackoverflow.com/a/34480093/5564548

标签: php codeigniter foreach


【解决方案1】:

试试:

控制器

public function comments()    {

        $this->load->model('comments_model');

        $data["comments"] = $this->comments_model->getAllComments();

        $this->load->view("post", $data);
    }

型号

public function getAllComments()
   {
       return $this->db->get("comments_table")->result();
   }

查看:

<?php foreach($comments as $post) : ?>
<div class="panel panel-default">
    <div class="panel-body">
        <div class="col-md-12 text-muted"><small><?php echo $post->comment?></small></div>
        <div class="col-md-12 text-muted"><small><?php echo $post->postid?></small></div>
    </div>
</div>

【讨论】:

    【解决方案2】:

    这里是控制器

    $data['postcomments'] = $this->users_model->getAllComments();
    

    我只是传递所有 cmets 来查看

    这是获取所有 cmets 的模型

    function getAllComments() {
    
        $this->db->order_by('comment_date DESC');
        $this->db->select('*');
        $this->db->from('comments_table');
        $this->db->join('confirmed_users', 'comments_table.commenter_id = confirmed_users.uid');
        $query = $this->db->get();
    
        if($query->num_rows() > 0) {
            return $query->result();
        } else {
            return false;
        }
    
    }
    

    这是我的 foreach 循环来显示帖子

                        <?php if($allposts): ?>
                            <?php foreach ($allposts as $post): ?>
                                <div class="panel panel-default">
                                    <div class="panel-body">
                                        <div class="col-md-12" style="padding: 0;">
                                            <img class="img-rounded pull-left" src="<? echo base_url($post->image) ?>" width=30px height=30px>
                                            <div style="margin-top: 5px;">
                                                <a href="<? echo base_url('home?p=Profile&u='.$post->post_author) ?>"><small style="margin-left: 5px;"><?=$post->post_author?></small></a>
                                                <span style="font-size: 75%;" class="text-muted pull-right"><span class="fa fa-clock-o"></span>
                                                <?php $post_date = $post->post_date; $now = time(); $units = 1; ?>
                                                    <? echo timespan($post_date, $now, $units) ?>
                                                        ago</span>
                                            </div>
                                        </div>
                                        <div class="clear"></div>
                                        <hr class="myown">
                                        <div class="col-md-12 text-muted"><small><?=$post->post_text?></small></div>
                                        <div class="clear"></div>
                                        <hr class="myown">
                                        <div class="btn-group">
                                            <?php if($this->users_model->liked($post->pid)): ?>
                                                <a class="btn btn-default btn-sm disabled"><span class="fa fa-check"></span> Liked</a>
                                                <?php else: ?>
                                                    <a class="btn btn-default btn-sm like-btn" post-id="<?=$post->pid?>"><span data-toggle-tooltip="tooltip" data-placement="top" title="Like" class="fa fa-thumbs-up fa-lg"></span></a>
                                                    <?php endif; ?>
                                                        <a class="btn btn-default btn-sm" data-toggle="collapse" data-target="#<?=$post->pid?>Comment"><span data-toggle-tooltip="tooltip" data-placement="top" title="Comment" class="fa fa-comment fa-lg"></span></a>
                                                        <a class="btn btn-default btn-sm"><span data-toggle-tooltip="tooltip" data-placement="top" title="Share" class="fa fa-share fa-lg"></span></a>
                                        </div>
                                        <div class="pull-right-custom text-muted"><small><?=$post->post_likes?> Like - <?=$post->post_comments?> Comment</small></div>
                                        <div class="clear"></div>
                                        <div id="<?=$post->pid?>Comment" class="collapse">
                                            <br>
                                            <form name="addcommentajax" id="addcommentajax" post-id="<?=$post->pid?>" class="form-horizontal" role="form" method="POST">
                                                <div class="input-group">
                                                    <input type="text" id="comment-text" class="form-control input-sm" placeholder="Add Comment">
                                                    <span class="input-group-btn">
                                    <button type="submit" class="btn btn-sm btn-default">Publish</button>
                                </span>
                                                </div>
                                            </form>
                                        </div>
                                    </div>
                                </div>
                            <?php endforeach; ?>
                        <?php endif; ?>
    

    我需要在 &lt;?php foreach ($allposts as $post): ?&gt; 这个循环内再做一次 foreach 来显示 cmets 而 $postcomments-&gt;post_id = $post-&gt;post_id

    【讨论】:

      【解决方案3】:

      这是我所有的代码

      查看:

                  <?php if($allposts): ?>
                      <?php foreach ($allposts as $post): ?>
                          <div class="panel panel-default">
                              <div class="panel-body">
                                  <div class="col-md-12" style="padding: 0;">
                                      <img class="img-rounded pull-left" src="<? echo base_url($post->image) ?>" width=30px height=30px>
                                      <div style="margin-top: 5px;">
                                          <a href="<? echo base_url('home?p=Profile&u='.$post->post_author) ?>"><small style="margin-left: 5px;"><?=$post->post_author?></small></a>
                                          <span style="font-size: 75%;" class="text-muted pull-right"><span class="fa fa-clock-o"></span>
                                          <?php $post_date = $post->post_date; $now = time(); $units = 1; ?>
                                              <? echo timespan($post_date, $now, $units) ?>
                                                  ago</span>
                                      </div>
                                  </div>
                                  <div class="clear"></div>
                                  <hr class="myown">
                                  <div class="col-md-12 text-muted"><small><?=$post->post_text?></small></div>
                                  <div class="clear"></div>
                                  <hr class="myown">
                                  <div class="btn-group">
                                      <?php if($this->users_model->liked($post->pid)): ?>
                                          <a class="btn btn-default btn-sm disabled"><span class="fa fa-check"></span> Liked</a>
                                          <?php else: ?>
                                              <a class="btn btn-default btn-sm like-btn" post-id="<?=$post->pid?>"><span data-toggle-tooltip="tooltip" data-placement="top" title="Like" class="fa fa-thumbs-up fa-lg"></span></a>
                                              <?php endif; ?>
                                                  <a class="btn btn-default btn-sm" data-toggle="collapse" data-target="#<?=$post->pid?>Comment"><span data-toggle-tooltip="tooltip" data-placement="top" title="Comment" class="fa fa-comment fa-lg"></span></a>
                                                  <a class="btn btn-default btn-sm"><span data-toggle-tooltip="tooltip" data-placement="top" title="Share" class="fa fa-share fa-lg"></span></a>
                                  </div>
                                  <div class="pull-right-custom text-muted"><small><?=$post->post_likes?> Like - <?=$post->post_comments?> Comment</small></div>
                                  <div class="clear"></div>
                                  <div id="<?=$post->pid?>Comment" class="collapse">
                                      <br>
                                      <form name="addcommentajax" id="addcommentajax" post-id="<?=$post->pid?>" class="form-horizontal" role="form" method="POST">
                                          <div class="input-group">
                                              <input type="text" id="comment-text" class="form-control input-sm" placeholder="Add Comment">
                                              <span class="input-group-btn">
                              <button type="submit" class="btn btn-sm btn-default">Publish</button>
                          </span>
                                          </div>
                                      </form>
                                  </div>
                              </div>
                          </div>
                          <?php endforeach; ?>
                              <?php endif; ?>
      

      控制器:

      function index () {
                  $data['allposts'] = $this->users_model->getAllPosts();
                  $data['postcomments'] = $this->users_model->getAllComments();
                  $data['friendsrequests'] = $this->users_model->own_friends_request($this->session->userdata('id'));
                  $this->load->view('includes/header', $data);
                  $this->load->view('subpages/' . $page, $data);
                  $this->load->view('includes/footer', $data);
      }
      

      用户模型:

      function getAllPosts() {
      
      
              $this->db->order_by('post_date DESC');
              $this->db->select('*');
              $this->db->from('users_posts');
              $this->db->join('confirmed_users', 'users_posts.author_id = confirmed_users.uid');
              $query = $this->db->get();
      
              if($query->num_rows() > 0) {
                  return $query->result();
              } else {
                  return false;
              }
          }
      
          function getAllComments() {
      
              $this->db->order_by('comment_date DESC');
              $this->db->select('*');
              $this->db->from('comments_table');
              $this->db->join('confirmed_users', 'comments_table.commenter_id = confirmed_users.uid');
              $query = $this->db->get();
      
              if($query->num_rows() > 0) {
                  return $query->result();
              } else {
                  return false;
              }
      
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-07
        • 1970-01-01
        • 2020-04-20
        • 2012-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多