如果查询返回true,则返回模型中的变量

时间:2012-10-15 01:08:20

标签: php codeigniter

模型

  $q = $this->db->get_where('person', array('p_id' => $p));
  if($q->num_rows()!=1) 
    {
    redirect('General_Area/Home');
    exit();
    }
    else
    {   
         . . . 

Ok所以一旦模型初始化,它会查询db并查找完全匹配的一个匹配项,如果找到则会在else语句中移动。但是,如果没有找到,它将redirect('General_Area/Home');

如何在那里传递消息?在我的控制器中,如果查询成功,我将返回object

在我看来,我echo obj->table_col_name

  $q = $this->db->get_where('person', array('p_id' => $p));
  if($q->num_rows()!=1) 
    {
    return $Error = 'You have not been found!...';
    #redirect('General_Area/Home');
    exit();
    }
    else
    {   
         . . .  

如果$q未成功,我希望能够在视图中echo $error;让用户看到该消息。

1 个答案:

答案 0 :(得分:1)

在您的模型中

if($q->num_rows()>0)
{
    return array('result'=>$q->result(), 'message'=>'This is a message');
}
return false;

在控制器

$this->load->model('your_model_name');
$data['query']=$this->your_model_name->model_function_name();
if(!$data['query']['result'])
{
    redirect('General_Area/Home');
    exit();
}
else $this->load->view('your_view_name',$data);

在您的视图中

if(isset($query))
{
    foreach($query as $row)
    {
        // code goes here to echo columns
    }
    //and message is available as $message so you can print it like
    if(isset($message)) echo $message;
}

重定向消息

此外,如果您想在重定向到可在控制器中使用的其他页面时发送消息

if(!$data['query']['result'])
{
    $this->session->set_flashdata('message', 'your message text here!');
    redirect('General_Area/Home');
    exit();
}

因此您可以在视图中打印消息,如

echo $this->session->flashdata('message');

详细了解Flashdata