Codeigniter - 根据条件显示数据

时间:2017-12-12 11:23:01

标签: php codeigniter

这是控制器:

 function list_requests(){
    $data['requests'] = $this->mdl_request->show_requests();
$data['main_content'] = 'backend/requests/requests';
        $data['title'] = 'Requests';
        $this->load->view('includes/template', $data);
    }

这是我的模特:

function show_requests()
    {

        $this->db->order_by('created_time','asc');
        $this->db->group_by('orderid');
        $this->db->from('requests', 'items');
        $this->db->join('items', 'items.item_id = requests.item_id');
        if($user_id != '')
            $this->db->where('created_by', $user_id);
        $query = $this->db->get();
        return $query->result();
    }

我在视野中尝试了这个

<?php 
  if($request->is_approved == yes){ 
   foreach($requests as $request):
     echo $request->request_name;
     endforeach;
   }
?>

这是显示的错误

  

遇到PHP错误   严重性:注意   消息:
未定义的变量:请求   文件名:requests / requests.php
  行号:128
  遇到了PHP错误   严重性:通知
  消息:尝试获取非对象的属性
  文件名:requests / requests.php
  行号:128

那么,我怎样才能只显示已批准的请求?我需要在视图中处理它,而不是在模型中。

2 个答案:

答案 0 :(得分:1)

试试这个

<?php 

   foreach($requests as $request) {
     if($request->is_approved == yes) { 
       echo $request->request_name;
     }
   }    

?>

答案 1 :(得分:0)

试试这个 - 显示测试结果。这假设你使用针对yes的测试意味着字符串值为'yes'。

<?php
// Dummy Data for testing
$requests = array(
    (object)(array('is_approved'=>'yes','request_name'=>'Fred')),
    (object)(array('is_approved'=>'no','request_name'=>'Sam')),
    );

// Does it look right?
var_dump($requests);

// The Code to test.
foreach($requests as $request) {
    if($request->is_approved == 'yes') {
        echo $request->request_name;
    }
}

以上的输出是

array (size=2)
  0 => 
    object(stdClass)[1]
      public 'is_approved' => string 'yes' (length=3)
      public 'request_name' => string 'Fred' (length=4)
  1 => 
    object(stdClass)[2]
      public 'is_approved' => string 'no' (length=2)
      public 'request_name' => string 'Sam' (length=3)
Fred

这条线......

if($request->is_approved == yes)

尝试将$ request-&gt; is_approved与名为yes的常量进行比较。

如果你没有将yes定义为值为'yes'的常量,那么基于字段名“is_approved”作为varchar / string,你需要根据字符串'yes'来测试它,就像这样。 ..

if($request->is_approved == 'yes')