codeigniter - For循环问题在Codeigniter 4中迭代一次
问题描述
我想知道我的代码如何迭代一次。它应该进行 5 次迭代。但是当我删除return $result时,它在为 foreach() 提供的View Invalid 参数中显示错误。我一直在尝试通过在Model中添加输出代码并删除View中的所有代码。最后它显示了我想要的 5 次迭代。但是,如何在视图中显示结果?
我的模特
public function getAllItem()
{
for($i=1; $i<=5; $i++){
for($j=$i+1; $j<=5; $j++){
$builder = $this->db->table('rating')
->select('user.idUser, user.nmUser, rating.idBengkel,
MAX( if(rating.idBengkel = '.$i.' , rating.nilai, 0 )) itemX,
MAX( if(rating.idBengkel = '.$j.' , rating.nilai, 0 )) itemY')
->join('user','user.idUser = rating.idUser', 'left')
->where('rating.idBengkel', $i)
->orWhere('rating.idBengkel', $j)
->groupBy('rating.idUser');
//var_dump($builder);
$query = $builder->get();
$result = $query->getResult();
return $result;
}
我的控制器
public function pcc_method()
{
$model = new Admin_model();
$data['all'] = $model->getAllItem();
echo view('templates/header', $data);
echo view('pcc_method',$data);
echo view('templates/footer');
}
我的观点
<table class="table table-bordered">
<thead class="thead-dark">
<tr>
<th scope="col">idUser</th>
<th scope="col">nmUser</th>
<th scope="col">itemX</th>
<th scope="col">itemY</th>
</tr>
</thead>
<tbody>
<!-- Looping select db from Admin.php -->
<?php foreach($all as $row):?>
<tr>
<td><?= $row->idUser;?></td>
<td><?= $row->nmUser;?></td>
<td class="text-center col-sm-3"><?= $row->itemX;?></td>
<td class="text-center col-sm-3"><?= $row->itemY;?></td>
</tr>
<?php endforeach;?>
</tbody>
</table>
请给我这个问题的解决方案。问候!
解决方案
这与codeigniter无关。它与原生PHP有关。
return
停止整个方法的执行,并将指示执行此操作的任何数据返回给调用您的方法的任何函数或方法。
如果您需要循环运行 5 次并返回 5 次迭代的输出,则需要将数据存储在辅助变量中,然后在 for 循环停止后返回该变量。
这里有很多选择。最简单的方法是在第一个循环开始()之前创建一个新的 arrayObject $temp = new ArrayObject();
,然后替换:
return $result
为了:
$temp->append($result);
这会将每次迭代的输出存储在 temp 对象中。
然后,在两个循环之外:
return $temp;
模型会将整个输出返回给控制器
推荐阅读
- r - 将字符串转换为符号,然后转换为 !! 识别的 quosure 在 tidyverse
- android - 为什么有些机器人显示权限被拒绝,而有些则没有(两者都没有植根)?
- linux - linux下SpeechSynthesizer关机过程无异常
- android - 我们需要处理弱引用和上下文切换吗?
- clojure - 如何在cljs中调用js实例的方法
- python - 无法在 colab 中导入 owlready2 模块得到 'AttributeError: module 'owlready2' has no attribute 'triplelite'
- google-chrome - 尽管需要建议的更改,但 Chrome 扩展程序被拒绝
- python - Linkedin Scraper,Parsel 选择器未定义
- opencv - 如何创建蒙版以从矩形图像中过滤圆角矩形
- node.js - 如何使用搜索(Ctrl + Shift + F)按钮将单引号替换为vs代码中的双引号?