gpt4 book ai didi

php - 如何在 CodeIgniter 中获取关系数据

转载 作者:行者123 更新时间:2023-11-29 05:49:39 24 4
gpt4 key购买 nike

我需要在 CodeIgniter 中使用 foreach 方法获取两个关系表。这只是我在问题中提供的示例代码,我 future 的项目肯定会需要它,而且我完全不知道要执行哪种查询。

这是买家表:

+----+------+
| id | name |
+----+------+
| 1 | John |
| 2 | Jane |
+----+------+

这是商品表:

 +----+----------+------------+
| id | buyer_id | goods_name |
+----+----------+------------+
| 1 | 1 | Apple |
| 2 | 1 | Grape |
| 3 | 1 | Banana |
| 4 | 2 | Pear |
| 5 | 2 | Mango |
+----+----------+------------+

在我的模型文件 mtest 中:

public function buyer_list()
{
$this->db->select('*');
$this->db->from('buyer');
$query = $this->db->get();
return $query->result();
}


public function order_list()
{
$this->db->select('*');
$this->db->from('goods');
$this->db->join('buyer', 'buyer.id = goods.buyer_id', 'inner');
$query = $this->db->get();
return $query->result();
}

在我的 Controller 中:

public function index()
{
$this->load->model('mtest');

$data['buyer'] = $this->mtest->buyer_list();
$data['order'] = $this->mtest->order_list();

$this->load->view('example', $data);
}

在我看来文件示例:

<div id="container">
<?php foreach ($buyer as $buyer_list): ?>
<strong><?php echo $buyer_list->name ?></strong>:
<ul>
<?php foreach ($order as $order_list): ?>
<li><?php echo $order_list->goods_name ?></li>
<?php endforeach; ?>
</ul>
<?php endforeach; ?>
</div>

上面的代码只显示了 goods 表的整行。我想要这样的结果:

  +------+------------+
| John | : • Apple |
| | • Grape |
+ + • Banana +
| | |
+ Jane + : • Pear +
| | • Mango |
+------+------------+

抱歉我的英语不好。有什么想法吗?

最佳答案

在 Controller 中执行此操作:

public function index()
{
$this->load->model('mtest');

$orders = $this->mtest->order_list();


$sortedOrders = [];
foreach($orders as $order){
$sortedOrders[$order->name][] = $order;
}

$this->load->view('example', [ "sortedOrders" => $sortedOrders ]);
}

在 View 中:

<div id="container">
<?php foreach ($sortedOrders as $k=>$sortedOrder): ?>
<strong><?php echo $k ?></strong>:
<ul>
<?php foreach ($sortedOrder as $goods): ?>
<li><?php echo $goods->goods_name ?></li>
<?php endforeach; ?>
</ul>
<?php endforeach; ?>
</div>

关于php - 如何在 CodeIgniter 中获取关系数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55633697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com