我必须在视图中使用user_id获取user_name。以下是我的模式:
//模型
class main_model extends CI_Model {
public function getOrders() {
$this->db->where( 'real', 1 );
$this->db->ORDER_BY( 'id', 'DESC' );
$query = $this->db->get('orders',10);
return $query->result();
}
public function getUsername($id) {
$this->db->where( 'id', $id );
$query = $this->db->get('users');
return $query->result();
}
//我的控制器在下面:
public function index() {
$this->load->model('main_model');
$data['orders'] = $this->main_model->getOrders();
$this->load->view('index', $data);
}
//以下是我的视图文件。
<div class="container-fluid">
<div class="row">
<table class="table table-responsive" border="3">
<tr>
<th>OID</th>
<th>user_id</th>
<th>Username</th>
</tr>
<?php foreach($orders as $order): ?>
<tr>
<td> <?= $order->id;?> </td>
<td> <?= $order->uid;?> </td>
<td> ? </td> <!-- Want to get user name using uid. -->
</tr>
<?php endforeach; ?>
</table>
</div>
</div>
我从订单表中获得了User_id,用户名在我的用户表上,因此我必须从那里获得它。任何人都可以帮忙。
您可以通过单个查询获取用户名。
MAIN_MODEL中的getorders()函数的简单更改
class main_model extends CI_Model {
public function getOrders() {
$this->db->select('orders.*,(select u.user_name from users as u where u.id = orders.uid) as user_name');
$this->db->where('real', 1 );
$this->db->ORDER_BY( 'id', 'DESC' );
$query = $this->db->get('orders',10);
return $query->result();
}
<tr>
<td> <?= $order->id;?> </td>
<td> <?= $order->uid;?> </td>
<td> <?= $order->user_name;?></td>
</tr>
首先,从getOrders()
调用中获取用户ID,然后通过订单循环以获取用户。然后从模型中的getUsername()
函数返回用户对象,因此在控制器中调用并存储变量:
$orders = $this->main_model->getOrders();
foreach($orders as $order) {
$user = $this->main_model->getUsername($uid);
$order->username = $user->username;
}
$data['orders'] = $orders;
现在用户名在您的订单数组中,只需添加<td> <?= $order->username;?> </td>
也许是这样的东西:
模型
public function getUsername($id) {
$this->db->where( 'id', $id );
$query = $this->db->get('users');
return $query->row();
}
查看
<?php foreach($orders as $order):
$username = $this->main_model->getUsername($order->uid);
?>
<tr>
<td> <?= $order->id; ?> </td>
<td> <?= $order->uid; ?> </td>
<td> <?= $username->user_name; ?> </td>
</tr>
<?php endforeach; ?>