Php 具有多个foreach的访问角色不工作

Php 具有多个foreach的访问角色不工作,php,codeigniter-3,Php,Codeigniter 3,我正在使用CodeIgniter和数据表 让我们先谈谈模型 我总共有4个访问角色,它们是1,2,3,4,我在代码中显示如下 $this->session->userdata['login_session']['access_role']==4 我已经为access角色设置了会话。因此,在模型中,我首先检查访问角色,然后它将处理下一个角色 在模型中,1,2,4访问角色没有问题。我的意思是如果条件和否则条件工作正常 让我们讨论一下模型中访问角色3的elseif条件。在这种情况下,我会得

我正在使用CodeIgniter和数据表

让我们先谈谈模型

我总共有4个访问角色,它们是
1,2,3,4
,我在代码中显示如下

$this->session->userdata['login_session']['access_role']==4
我已经为access角色设置了会话。因此,在模型中,我首先检查访问角色,然后它将处理下一个角色

模型中,
1,2,4
访问角色没有问题。我的意思是
如果
条件和
否则
条件工作正常

让我们讨论一下模型中访问角色
3
elseif
条件。在这种情况下,我会得到不止一张记录。我的输出是

因此,我在控制器中添加了多个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
}
因此,我必须显示access角色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();
    }
public function order\u listdetails(){
$send_id=$this->session->userdata['login_session']['id'];
$order_list=$this->Customer_model->getCSRList($send_id);//从模型获取
//数据表变量
$draw=intval($this->input->get(“draw”);
$start=intval($this->input->get(“start”);
$length=intval($this->input->get(“length”);
$data['draw']=1;
$recordsTotal=count($order\u list);
$recordsFiltered=计数($order\u list);
$data=array();
$n=1;
if(is_数组($order_list)){
foreach($order_列表为$r){
//foreach($r的订单){//删除注释,然后为3工作,但不为1,2,4工作
$encryption\u id=base64\u encode($this->encryption->encrypt($r->cust\u id));
如果($r->status==-1){
$order_status='';
}
elseif($r->status==0){
$order_status='';
}
elseif($r->status==1){
$order_status='';
}
否则{
$order_status='';
}
如果($r->status\u confirm==-1){
$order\u status\u confirm='';
}
elseif($r->status\u confirm==3){
$order\u status\u confirm='';
}
elseif($r->o\订单\状态\确认==1){
$order\u status\u confirm='';
}
其他($r->o\U订单状态\U确认==2){
$order\u status\u confirm='';
}
否则{
$order_status_confirm=“”;
}
$action='';
如果($r->follow==1){
$follow='';
}
否则{
$follow='';
}
$data[]=数组(
“Sr_No”=>n美元,
“cust_id”=>$encryption_id,//加密该id
“Name”=>$r->c_lastname。”“$r->c_lastname,
“移动”=>r->c_mobileno,
“订单状态”=>“.$order\u status.”“$order\u status\u confirm.”,
“action”=>“.$action.”“$follow.”
);
$n++;
}
}
//}
$output=array(
“draw”=>$draw,
“recordsTotal”=>$recordsTotal,
“recordsFiltered”=>$recordsFiltered,
“数据”=>$data
);
echo json_编码($output);
退出();
}

使用以下代码更新您的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++;
  }
}
$data=array();
foreach($order_列表为$order){
if(is_数组($order)){
foreach($r订单){
$encryption\u id=base64\u encode($this->encryption->encrypt($r->cust\u id));
如果($r->status==-1){
$order_status='';
}elseif($r->status==0){
$order_status='';
}elseif($r->status==1){
$order_status='';
}否则{
$order_status='';
}
如果($r->status\u confirm==-1){
$order\u status\u confirm='';
}elseif($r->status\u confirm==3){
$order\u status\u confirm='';
}elseif($r->o\订单\状态\确认==1){
$order\u status\u confirm='';
}其他($r->o\U订单状态\U确认==2){
$order\u status\u confirm='';
}否则{
$order_status_confirm=“”;
}
$action='';
如果($r->follow==1){
$follow='';
}否则{
$follow='';
}
$data[]=数组(
“Sr_No”=>n美元,
“cust_id”=>$encryption_id,//加密该id
“Name”=>$r->c_lastname。”“$r->c_lastname,
“移动”=>r->c_mobileno,
“订单状态”=>“.$order\u status.”“$order\u status\u confirm.”,
“action”=>“.$action.”“$follow.”
);
$n++;
}
}否则{
$encryption_id=base64_encode($this->encryption->encrypt($order->cust_id));
如果($order->status==-1){
$order_status='';
}elseif($order->status==0){
$order_status='';
}elseif($order->status==1){
$order_status='';
}否则{
$order_status='';
}
如果($order->status\u confirm==-1){
$order\u status\u confirm='';
}elseif($order->status\u confirm==3){
$order\u status\u confirm='';
}elseif($order->o_order\u status\u confirm==1){
$order\u status\u confirm='';
}elseif($order->o_order\u status\u confirm==2){
$order\u status\u confirm='';
}否则{
$order_status_confirm=“”;
}
$action='';
如果($order->follow==1){
$follow='';
}否则{
$follow='';
}
$data[]=数组(
“Sr_No”=>n美元,
“cust_id”=>$encryption_id,//加密该id
“Name”=>$order->c_firstname。”“$order->c_lastname,
“移动”=>$order->c_mobileno,
“订单状态”=>“.$order\u status.”“$order\u status\u confirm.”,
“action”=>“.$action.”“$follow.”
);
$n++;
}
}

从哪里获得$orderdata@Sachin,我试过foreach($order_list as$order){foreach($order as$r){}}它工作了..但对1,2,4不起作用,所以你想在打印的数组上检索吗?是的,没错。即使我是从模型中得到的,但无法在控制器中显示。您能否以文本而不是图像形式共享打印的数组,以便我可以为您提供正确的解决方案给我一些时间了解y