我想做的事情似乎很容易,但对于我的生活来说,我无法弄清楚我做错了什么。我想要实现的是调用一个函数,该函数在我的模型中的另一个函数中包含一个带有 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++. '. ' .$file_name. '
<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++. '. ' .$file_name. '
<a class="btn btn-primary btn-xs" href="' .$download_path. '" title="Download Content">Download</a></p>';
}
return $loop_result;
}