如何在CodeIgniter中访问$ _GET参数?

时间:2012-11-19 16:12:41

标签: php codeigniter get

我使用codeigniter生成JSON。这是我目前的结构:

模特文章:

<?php
class Articles_model extends CI_Model {

 public function __construct()
     {
  $this->load->database();
 }

 public function get_articles()
{
  $this->db->order_by("HdOrder", "asc");
  $query = $this->db->get('articles');

  return $query->result_array();

}
} 

控制器:

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

class Json extends CI_Controller {


 public function __construct()
 {
  parent::__construct();
  $this->load->model('articles_model');
 }

 public function index()
{
 $data['articles'] = $this->articles_model->get_articles();

 $this->load->view('json', $data);

}
}

我的观点:

<?php header('Access-Control-Allow-Origin: *'); ?>

<?php
echo '{"articles":'.json_encode($articles).'}';
?> 

现在我需要将两个get参数传递给此json,以便我可以在页面中返回它。 I have done it in php并且它有效。下面是没有CI的PHP代码:

<?php
$link = mysql_pconnect("localhost", "user", "pass") or die("Could not connect");
mysql_select_db("dbase") or die("Could not select database");

//GET page/count
$count=10;$offset=0;
if (isset($_GET['count'])) $count=$_GET['count']*1;
if (isset($_GET['page']))  $offset=$_GET['page']*$count*1;

$arr = array();

$rs = mysql_query("SELECT * FROM bannersright 
                   ORDER BY HdOrder 
                   LIMIT $offset,$count"); #<-HERE

while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}

echo '{"bannersright":'.json_encode($arr).'}';

?>

现在我如何在CodeIgniter结构中执行此操作?我应该如何从我的view-controller-model传递$ offset和$ count变量来将它们设置为mysql查询的限制值?实际上我找到了tutorial on how to pass a varuable to the controller但是我仍然不确定如何将相同的值传递给模型然后将查询返回到同一个控制器。而且我不确定这是否是解决问题的正确方法。

我想尽可能简单地解决它。

2 个答案:

答案 0 :(得分:3)

你只需传递这样的参数..........

public function controller_name($param1, $param2) {

      $result = $this->model->get_result($param1, $param2);

      $data = array();
      $data['result'] = $result;
      $this->load->view('view_file_name', $data);
}

答案 1 :(得分:0)

否则你可以使用



    // if your url come like controller/someview/1/2
    $this->uri->segment(3) // will get 1
    $this->uri->segment(4) // will get 2