这是控制器:
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
那么,我怎样才能只显示已批准的请求?我需要在视图中处理它,而不是在模型中。
答案 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')