代码点火器 for each 循环函数仅返回一行



我想做的事情似乎很容易,但对于我的生活来说,我无法弄清楚我做错了什么。我想要实现的是调用一个函数,该函数在我的模型中的另一个函数中包含一个带有 return 语句的循环。出于某种原因,循环函数只返回 db 表中的第一行,即使超过 1 行也是如此。

下面是循环函数:

public function download_contents($id) {
    $the_contents = $this->db->get_where('contents', array('request_id' => $id));
    $count = 1;
    foreach ($the_contents->result() as $y) {
        $file_name = $y->file_name;
        $download_path = base_url('assets/client/contents/'.$file_name);
        return '<p>' .$count++. '. &nbsp;' .$file_name.  '&nbsp;
        <a class="btn btn-primary btn-xs" href="' .$download_path. '" title="Download Content">Download</a></p>';
    }
}

现在我想在下面的函数中回显上面函数的结果:

public function modal_content_download($id) {
    $y = $this->db->get_where('website_requests', array('id' => $id))->row();
    $the_contents = $this->db->get_where('contents', array('request_id' => $id));
    if ( $the_contents->num_rows() > 0 ) {
        return '<button class="btn btn-primary btn-sm modal-toggle-btn" data-toggle="modal" data-target="#contents' .$id. '" title="Download Contents"> <i class="fa fa-download"></i></button>
        <div class="modal fade" id="contents' .$id. '" role="dialog">
            <div class="modal-dialog">
                <div class="modal-content modal-width">
                    <div class="modal-header">
                        <div class="pull-right">
                            <button class="btn btn-danger btn-xs" data-dismiss="modal" title="Close dialog"> Close </button>
                        </div>
                        <h5 class="modal-title"> <i class="fa fa-download"></i> Download Contents: ' .$y->project_name. '</h5>
                    </div><!--/.modal-header-->
                    <div class="modal-body">'
                        .$this->download_contents($id). //calling the first function
                    '</div>
                </div>
            </div>
        </div>';
    } else {
        return '<b style="color: red">No content uploaded yet.</b>';
    }
} 

第二个函数传递给控制器并加载到视图(带有一些其他信息(。现在我知道了代码点火器的查询逻辑,result(( 应该返回超过 1 行。我错过了什么?

试试这个

 public function download_contents($id) {
            $the_contents = $this->db->get_where('contents', array('request_id' => $id));
            $count = 1;
            $loop_result="";
            foreach ($the_contents->result() as $y) {
                $file_name = $y->file_name;
                $download_path = base_url('assets/client/contents/'.$file_name);
                $loop_result .= '<p>' .$count++. '. &nbsp;' .$file_name.  '&nbsp;
                <a class="btn btn-primary btn-xs" href="' .$download_path. '" title="Download Content">Download</a></p>';
            }
      return $loop_result; 
 }

最新更新