我获取数据数组时出现Codeigniter错误

时间:2014-05-14 09:37:01

标签: php mysql codeigniter controller models

我有一个模型将一条记录传递给我的控制器,但我一直收到这两个错误

  

消息:Quoted_model :: get_records()缺少参数1,调用   /home/digibite/public_html/development/quote/application/controllers/welcome.php   在第12行并定义

     

消息:缺少Quotes_model :: get_records()的参数2,调用   /home/digibite/public_html/development/quote/application/controllers/welcome.php   在第12行并定义

我一直在玩这个差不多一个小时,无法理解它。

我的模特

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Quotes_model extends CI_Model{

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

  function get_records($limit, $offset){
    $query = $this->db->select('*')
             ->from('quotes')
             ->join('authors', 'authors.id = quotes.author_id')
             ->join('genre', 'genre.id = quotes.id')
             ->order_by('id', 'RANDOM')
             ->limit($limit, $offset);
    $data = array();
    $data[] = array (

      'title' => $row->title,
      'slug' => $row->slug,
      'meta_keys' => $row->meta_keys,
      'meta_description' => $row->meta_description,
      'content' => $row->content,
      'views' => $row->views,  
    );

    return $data;


  }
} 

这是我的控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {


    public function index()
    {


        $this->load->helper('url');
        $this->load->model('quotes_model');
        $data['quote']= $this->quotes_model->get_records();
        $this->load->view('welcome_message');

    }
}

1 个答案:

答案 0 :(得分:0)

此错误是因为您没有通过控制器中的函数传递任何参数。

$data['quote']= $this->quotes_model->get_records();
                                                 ^

并且您试图在查询中调用参数(您应该传递给模型)。

$query = $this->db->select('*')
             ->from('quotes')
             ->join('authors', 'authors.id = quotes.author_id')
             ->join('genre', 'genre.id = quotes.id')
             ->order_by('id', 'RANDOM')
             ->limit($limit, $offset);
                     ^         ^