我使用 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,以便我可以在页面中返回它。我已经在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 结构中执行此操作?我应该如何从我的视图控制器模型中传递我的 $offset 和 $count 变量以将它们设置为 mysql 查询的限制值?实际上我找到了一个关于如何将变量传递给控制器的教程但是我仍然不确定如何将相同的值传递给模型,然后将查询返回到同一个控制器。而且我不太确定这是否是解决问题的正确方法。
我想尽可能简单地解决它。