从Controller到模型的数组[codeIgniter]

时间:2013-02-25 12:35:19

标签: codeigniter

这是我的问题:

Codeigniter的医生说:

<?php

    $array = array('name' => $name, 'title' => $title, 'status' => $status);

    $this->db->where($array);

    // Produces: WHERE name = 'Joe' AND title = 'boss' AND status = 'active'

?>

我只想将条件传递给我从控制器到模型的where子句:

控制器

<?php
    $condition = array('id' => $id_user)
    $data['info_user'] = $this->user_model->get_user($condition);
?>

模型

public function get_user($condition)
{
    $q = $this
        ->db
        ->where($condition)
        ->get('users');

    if($q->num_rows > 0)
    {
        return $q->row();
    }
}

此返回: SELECT * FROM(users)WHERE 3 IS NULL

但是当我把我的数组直接放在模型中时($

1 个答案:

答案 0 :(得分:0)

没有必要传递数组,我甚至不能肯定它可以按照你尝试的方式完成。只需将值本身传递给模型,如下所示。编辑答案以显示多个变量。

控制器:

   $data['info_user'] = $this->user_model->get_user($id_user,$user_login);

型号:

public function get_user($id_user,$user_login)
{
    $q = $this
        ->db
        ->where('id_user',$id_user)
        ->or_where('user_login',$user_login);
        ->get('users');

    if($q->num_rows == 1)
    {
        return $q->row();
    }
}

作为附注,当您想要数据库中的单个结果时,如检索用户一直检查单个结果而不是&gt;你想确保你只回来一个用户。