为了账号安全,请及时绑定邮箱和手机立即绑定

管理员使用codeigniter分配数据后,当用户登录时如何从postgresql

管理员使用codeigniter分配数据后,当用户登录时如何从postgresql

PHP
慕莱坞森 2021-06-10 18:37:44
我正在制作我有 1 个管理员和 10-15 个用户的项目。对于每个用户,我只想向他们显示专门分配给他们的案例,以便在管理员分配时加载到他们的仪表板上。未分配给他们的案例不会列在他们的仪表板上。管理员可以成功地将 case_id 分配给一个表这是 case_assignment 表,其中包含 case_id(管理员分配的)、用户名(分配给谁的案例)、分配的日期。类似的用户表有用户名、密码、级别(管理员为 1,所有其他用户为 2)、电子邮件如果管理员已将案例(case_id 将存在)分配给 case_assignment 表中的特定用户名,那么当用户登录时,他应该能够看到与该特定 case_id 相关的所有数据(表)。这里是截图:管理员页面:https : //prnt.sc/novscc --> 这将如何为管理员显示数据表。他将拥有所有案例数据。当他将案例分配给用户时。用户应该只收到这种情况。用户页面:https : //prnt.sc/novtnr -> 这是我希望在管理员分配案例时显示用户数据表的方式。这是数据库 case_assigment 表屏幕截图:https : //prnt.sc/novtze(这里只有管理员想要分配的 case_id 和用户名)。这是视图,user.php<table id="table" class="table table-striped table-bordered display nowrap" cellspacing="0" width="100%" "style="width: 650px;">            <thead>                <tr>                    <th>Case ID</th>                    <th>Case Name</th>                    <th>Firm Name</th>                    <th>Case Overview</th>                    <th>Priority</th>                    <th>Received Date</th>                    <th>Expected Delivery Date</th>                    <th>Service Status</th>                </tr>            </thead>        <tbody>                <?php                        if($result){                           foreach ($result as $results) {                                                ?>                <tr>                    <td><?php echo $results->case_id; ?></td>                    <td><?php echo $results->case_name; ?></td>                    <td><?php echo $results->firm_name; ?></td>                    <td><?php echo $results->case_description; ?></td>                    <td><?php echo $results->priority; ?></td>                    <td><?php echo $results->received_date; ?></td>                    <td><?php echo $results->expected_delivery_date; ?></td>                    <td><?php echo $results->service_status; ?></td>                </tr>     <?php            }        }    ?>
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

根据您的评论,我假设一名员工被分配到一个案例。因此:


function get_employee_case() {

    $this->db->select('case_id');

    $this->db->where('username', $this->session->userdata('username'));

    $q = $this->db->get('case_assignment');

    if ($q->num_rows() == 1) {

        return $q->row()->case_id;

    }

    return null;

}

控制器:


$case_id = $this->HomeModel->get_employee_case();

if (!is_null($case_id)) {

    $data['result'] = $this->HomeModel->get_employee($case_id);

} else {

    $data['result'] = null;

}

看法:


if (is_null($result)) {

    echo 'no case assigned';

} else {

    ...

}


查看完整回答
反对 回复 2021-06-19
?
月关宝盒

TA贡献1772条经验 获得超5个赞

这是我正在寻找的结果:


Controller:


     public function index()

    { 

       $data['result'] = $this->HomeModel->get_employee_case();

       $this->load->view('case/user');

    /*

       print_r($data);

       die; */

    }


Model:


    function get_employee_case()

      {

        $this->db->select('case_assignment.case_id,

                           case_main.case_name,

                           case_main.firm_name,

                           case_overview.case_description,

                           case_priority.priority,

                           service_delivery_dates.received_date, 

                           service_delivery_dates.expected_delivery_date,  

                           service_delivery_dates.service_status');

        $this->db->from('case_tracker.case_assignment');

        $this->db->join('case_tracker.case_main', 'case_tracker.case_assignment.case_id=case_tracker.case_main.case_id', 'left');

        $this->db->join('case_tracker.case_overview', 'case_tracker.case_main.case_id=case_tracker.case_overview.case_id', 'left');

        $this->db->join('case_tracker.type_of_services', 'case_tracker.case_overview.case_id = case_tracker.type_of_services.case_id', 'left');

        $this->db->join('case_tracker.specific_instructions', 'case_tracker.type_of_services.case_id = case_tracker.specific_instructions.case_id' , 'left');

        $this->db->join('case_tracker.case_priority', 'case_tracker.specific_instructions.case_id = case_tracker.case_priority.case_id' , 'left');

        $this->db->join('case_tracker.service_delivery_dates', 'case_tracker.case_priority.case_id = case_tracker.service_delivery_dates.case_id' , 'left');

        $this->db->where('case_assignment.username', $this->session->userdata('username'));

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

        return $query->result();

    }


查看完整回答
反对 回复 2021-06-19
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

您必须首先选择分配给用户的所有案例

select * from cases where user_id=2

获取循环中的所有案例

然后为每个案例获取数据


查看完整回答
反对 回复 2021-06-19
  • 3 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信