gpt4 book ai didi

php - codeigniter JOIN 返回错误的 id

转载 作者:行者123 更新时间:2023-11-29 09:27:56 25 4
gpt4 key购买 nike

我是 codeigniter 的新手,并且遇到了 JOIN 问题。

我有 2 张 table

super_admin_staff 和 super_admin_roles

super_admin_staff 有一个名为“id”的唯一 ID 列,它还有一个名为“role”的列

“role”列对应于 super_admin_roles 的“id”列。

我的模型:

 function superAdminStaff()
{
$this->db->select('*');
$this->db->from('super_admin_staff');
$this->db->join('super_admin_roles', 'super_admin_staff.role = super_admin_roles.id');


$query = $this->db->get();

$result = $query->result();
return $result;
}

我的类(class):

public function index()
{

if ($this->isSuperAdmin() != true) {
$this->loadThis();
} else {

$this->load->model('super_admin_staff_model');

$data['userRecords'] = $this->super_admin_staff_model->superAdminStaff();

// set up page title and description
$this->global['pageTitle'] = 'Staff List';
$this->global['pageDesc'] = 'Add, Edit or Resign Staff';

$this->loadViews("super_admin/staff", $this->global, $data, null);
}
}

我的观点:

<tbody>
<?php
if (!empty($userRecords)) {
foreach ($userRecords as $record) {
?>
<tr>

<td><img src="<?php echo base_url() . 'uploads/super_admin/' . $record->profile_picture ?>" class="wd-100 rounded-circle bd bd-2"></td>
<td class="align-middle"><?php echo $record->firstname ?></td>
<td class="align-middle"><?php echo $record->lastname ?></td>
<td class="align-middle"><?php echo $record->email ?></td>
<td class="align-middle"><?php echo $record->phone ?></td>
<td class="align-middle"><?php echo $record->role ?></td>
<td class="text-center align-middle">

<a class="btn btn-sm btn-danger deleteUser" href="<?php echo base_url() . 'super_admin_staff/deletestaff/' . $record->id; ?>" data-userid="<?php echo $record->id; ?>"><i class="fas fa-trash"></i></a>
</td>
</tr>
<?php
}
}
?>

</tbody>

一切都按预期进行,并且 <?php echo $record->role ?>返回角色的名称

但是<?php echo $record->id ?>现在已替换为 super_admin_roles 表中的 ID,而不是预期的 super_admin_staff。

我想做的就是使用存储在 super_admin_staff.roles 列中的 id 从 super_admin_roles 获取角色名称,并仍然使用 super_admin_staff 表中的 id,以便我可以根据 id 删除员工。

最佳答案

id 不明确,因为它存在于查询涉及的两个表中。

一种解决方案是枚举您希望查询返回的列。表别名也可以方便地缩短查询。

所以类似:

$this->db->select('s.firstname, s.last_name, s.email, s.email, s.phone, s.role, s.id')
$this->db->from('super_admin_staff as s');
$this->db->join('super_admin_roles as r', 's.role = r.id');

我不确定您是否确实需要 super_admin_roles 表中的列。如果这样做,只需将它们添加到选择中即可。

关于php - codeigniter JOIN 返回错误的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59257605/

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