返回模型中的单行,将其传递给控制器​​并查看 - Codeigniter

时间:2014-05-21 18:25:34

标签: php codeigniter

很抱歉发布了这样一个noob问题,但是在返回单曲时遇到了困难 从数据库行并将其传递给模型。这是我的模型中的方法:

public function test($user_id)
{
    $query = $this->db->query("SELECT COUNT(*) AS test FROM test WHERE user_id = '.$user_id.'");

    return $query->first_row('array');
}

以下是我的控制器的示例,其中包含我的模型中的其他返回值:

class MY_Controller extends CI_Controller
{
    public $layout;
    public $id;
    public $data = array();

    public function __construct()
    {
        parent::__construct();

        $this->output->nocache();

        $this->load->model('subject_model');
        $this->load->model('user_model');
        $this->load->model('survey_model');
        $this->id = $this->session->userdata('user_id');

        $this->data['check_if_already_posted_it_survey'] = $this->survey_model->checkIfAlreadyPostedSurvey('it_survey', $this->id);
        $this->data['check_if_already_posted_lvis_survey'] = $this->survey_model->checkIfAlreadyPostedSurvey('lvis_survey', $this->id);
        $this->data['test']= $this->survey_model->test($this->id);


        $this->layout = 'layout/dashboard';
}

除了“test”之外,我可以将该数据数组中的所有值传递给我的视图。我基本上都尝试了一切。

CheckIfAlreadyPostedSurvey方法将返回 带有num_rows和I的行数可以通过编写以下内容轻松地在我的视图中打印它们的值:

<?=$check_if_already_posted_it_survey?>

在我看来,我该如何打印出“测试”?

提前致谢并道歉...

2 个答案:

答案 0 :(得分:0)

我可能错了,但你试过吗

echo $this->survey_model->test($this->id);

答案 1 :(得分:0)

试试这个:

public function test($user_id)
{
    $query = $this->db->query("SELECT COUNT(*) AS test FROM test WHERE user_id = '".$user_id."'");

    return $query->row()->test;
}

这将返回一行作为对象,然后返回引用的行名称,在本例中为test

以下内容也适用。

public function test($user_id)
{
    $query = $this->db->query("SELECT * FROM test WHERE user_id = '".$user_id."'");

    return count($query->result());
}

你还搞砸了SQL语句中的引用。