Роль доступа с несколькими foreach не работает - PullRequest
0 голосов
/ 16 ноября 2018

Я использую CodeIgniter и таблицы данных.

Давайте поговорим о Модель сначала.

У меня всего 4 роли доступа, которые 1,2,3,4, и я отображаю это в коде.

$this->session->userdata['login_session']['access_role']==4

Я уже установил сеанс для роли доступа. Итак, в модели я сначала проверяю роль доступа, а затем обрабатываю следующую.

В Модель Нет проблем с ролью доступа 1,2,4. Я имею в виду if условие и else условие работает отлично.

Давайте поговорим о elseif условии для роли доступа 3 в модели. Я получаю более одной записи в этом состоянии. и мой вывод enter image description here

Итак, я добавил более одного foreach в контроллер

 foreach($order_list as $r) { 
 //foreach($order as $r) { }// This foreach is commented and If I remove comment then it's working but 1,2,4 not working
}

Так что мне нужно отобразить весь список, который находится в роли доступа 3.

Модель

public function getCSRList($send_id){
if ($this->session->userdata['login_session']['access_role']==4) {
    $this->db->select('*');
    $this->db->from('tbl_customer'); 
    $this->db->where('created_by',$send_id);
    $query = $this->db->get();
    $result_4 = $query->result();
    return $result_4; 
 }
  elseif ($this->session->userdata['login_session']['access_role']==3) {
    $this->db->select('id');
    $this->db->from('tbl_employee');
    $this->db->where('team_leadername', $send_id);
    $query = $this->db->get();
    $result = $query->result();
    if($result)
      {
    $result_2= array();
    foreach($result as $id){
      $this->db->select('*');
      $this->db->from('tbl_customer');
      $this->db->where('created_by',$id->id);
      $query = $this->db->get();
      $result_2[] = $query->result();
          }
       return $result_2;
      }
      else 
      {
        return 0;
      }
  }
 else{
      $this->db->select('*');
      $this->db->from('tbl_customer');
      $query = $this->db->get();
      $result = $query->result();
      return $result;
    }

}

Контроллер

    public function order_listdetails(){
      $send_id =$this->session->userdata['login_session']['id'];
      $order_list=$this->Customer_model->getCSRList($send_id);//getting from model

     // Datatables Variables
      $draw = intval($this->input->get("draw"));
      $start = intval($this->input->get("start"));
      $length = intval($this->input->get("length"));

      $data['draw'] = 1;
      $recordsTotal = count($order_list);
      $recordsFiltered = count($order_list);

      $data = array();
      $n=1;
      if(is_array($order_list)){
      foreach($order_list as $r) { 
      //foreach($order as $r) {// remove comment then working for 3 but not working for 1,2,4
      $encryption_id=base64_encode($this->encryption->encrypt($r->cust_id));

      if ($r->status == -1){
    $order_status='<a href="#">Action name</a>';
}
elseif($r->status == 0){
    $order_status='<a href="#">Action name</a>';
}
elseif($r->status == 1){
    $order_status='<a href="#">Action name</a>';
}
else{
    $order_status='<a href="#">Action name</a>';
}

if ($r->status_confirm == -1){
    $order_status_confirm='<a href="#">Action name</a>';
}
elseif($r->status_confirm == 3){
    $order_status_confirm='<a href="#">Action name</a>';
}
elseif($r->o_order_status_confirm == 1){
    $order_status_confirm='<a href="#">Action name</a>';
}
elseif($r->o_order_status_confirm == 2){
    $order_status_confirm='<a href="#">Action name</a>';
}
else{
    $order_status_confirm="";
}
$action='<a href="#">Action name</a>';

if ($r->follow == 1) {
$follow='<a href="#">Action name</a>';
}
else{
$follow='<a href="#">Action name</a>';
 }

               $data[] = array(
                        "Sr_No" => $n,
                        "cust_id" =>$encryption_id,//encrpt the id 
                        "Name"=>$r->c_firstname."".$r->c_lastname,
                        "Mobile"=>$r->c_mobileno,
                   "orderStatus"=>"<div class='in_oneLine'>".$order_status." ".$order_status_confirm."</div>",
                        "action"=>"<div class='in_oneLine'>".$action." ".$follow."</div>"
                   );
                   $n++;
              }
        }
    //}
      $output = array(
         "draw" => $draw,
         "recordsTotal" => $recordsTotal,
         "recordsFiltered" =>$recordsFiltered,
         "data" => $data
                );
        echo json_encode($output);
         exit();
    }

1 Ответ

0 голосов
/ 16 ноября 2018

Обновите код foreach, указав код ниже

$data = array();
foreach($order_list as $order) { 
  if(is_array($order)){
    foreach($order as $r) {
      $encryption_id=base64_encode($this->encryption->encrypt($r->cust_id));
       if ($r->status == -1){
          $order_status='<a href="#">Action name</a>';
       }elseif($r->status == 0){
          $order_status='<a href="#">Action name</a>';
       }elseif($r->status == 1){
          $order_status='<a href="#">Action name</a>';
       }else{
          $order_status='<a href="#">Action name</a>';
       }

       if ($r->status_confirm == -1){
          $order_status_confirm='<a href="#">Action name</a>';
       }elseif($r->status_confirm == 3){
          $order_status_confirm='<a href="#">Action name</a>';
       }elseif($r->o_order_status_confirm == 1){
          $order_status_confirm='<a href="#">Action name</a>';
       }elseif($r->o_order_status_confirm == 2){
          $order_status_confirm='<a href="#">Action name</a>';
       }else{
          $order_status_confirm="";
       }

       $action='<a href="#">Action name</a>';
       if ($r->follow == 1) {
          $follow='<a href="#">Action name</a>';
       }else{
          $follow='<a href="#">Action name</a>';
       }

       $data[] = array(
                 "Sr_No" => $n,
                 "cust_id" =>$encryption_id,//encrpt the id 
                 "Name"=>$r->c_firstname."".$r->c_lastname,
                 "Mobile"=>$r->c_mobileno,
                 "orderStatus"=>"<div class='in_oneLine'>".$order_status." ".$order_status_confirm."</div>",
                 "action"=>"<div class='in_oneLine'>".$action." ".$follow."</div>"
        );
        $n++;
    }
  }else{
    $encryption_id=base64_encode($this->encryption->encrypt($order->cust_id));
       if ($order->status == -1){
          $order_status='<a href="#">Action name</a>';
       }elseif($order->status == 0){
          $order_status='<a href="#">Action name</a>';
       }elseif($order->status == 1){
          $order_status='<a href="#">Action name</a>';
       }else{
          $order_status='<a href="#">Action name</a>';
       }

       if ($order->status_confirm == -1){
          $order_status_confirm='<a href="#">Action name</a>';
       }elseif($order->status_confirm == 3){
          $order_status_confirm='<a href="#">Action name</a>';
       }elseif($order->o_order_status_confirm == 1){
          $order_status_confirm='<a href="#">Action name</a>';
       }elseif($order->o_order_status_confirm == 2){
          $order_status_confirm='<a href="#">Action name</a>';
       }else{
          $order_status_confirm="";
       }

       $action='<a href="#">Action name</a>';
       if ($order->follow == 1) {
          $follow='<a href="#">Action name</a>';
       }else{
          $follow='<a href="#">Action name</a>';
       }

       $data[] = array(
                 "Sr_No" => $n,
                 "cust_id" =>$encryption_id,//encrpt the id 
                 "Name"=>$order->c_firstname."".$order->c_lastname,
                 "Mobile"=>$order->c_mobileno,
                 "orderStatus"=>"<div class='in_oneLine'>".$order_status." ".$order_status_confirm."</div>",
                 "action"=>"<div class='in_oneLine'>".$action." ".$follow."</div>"
        );
        $n++;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...