【问题标题】:Query Strings with Code Igniter使用 Codeigniter 查询字符串
【发布时间】:2013-07-15 17:39:41
【问题描述】:

我正在尝试使用查询字符串设置 CodeIgniter (v2.1.4),但在传递变量时遇到问题。当 controller_trigger 和 function_trigger 被传递时页面工作:

example.org/?c=page&m=index

但是当我尝试传递一个变量时:

example.org/?c=page&m=view&id=1

脚本抛出“缺少参数”和“未定义变量”错误。

在 'application/config/config.php' 我已经设置:

$config['enable_query_strings'] = TRUE;

在 'application/config/routes.php' 我有:

$route['default_controller'] = "page";

我的控制器看起来像:

<?php

class Page extends CI_Controller {

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

    public function index()
    {
        $data['title'] = 'Page Title';

        $this->load->view('templates/header', $data);
        $this->load->view('page/page_index', $data);
        $this->load->view('templates/footer');
    }

    public function view($id)
    {
        $data['title'] = 'Id Page Title';

        $data['page_item'] = $this->page_model->get_page($id);

        $this->load->view('templates/header', $data);
        $this->load->view('page/page_view', $data);
        $this->load->view('templates/footer');
    }

}

有人知道我错过了什么吗?

任何帮助将不胜感激

【问题讨论】:

    标签: codeigniter codeigniter-2 codeigniter-routing


    【解决方案1】:

    在您的 config.php 中更改:

    $config['allow_get_array']      = TRUE;    #example.com?who=me&what=something&where=here
    

    【讨论】:

    • 这似乎已经设置为 TRUE。我假设这是默认设置,因为我不记得更改它。
    • 不,这不是默认设置。遵循此结构:example.com/index.php?c=controller&amp;m=function。有关详细信息,请参阅您的配置文件。而不是public function view($id) 尝试做public function view(){$id = $_GET['id']}
    • 那行得通。谢谢。顺便说一句,我刚刚在 CodeIgniter (v2.1.4) 的 zip 中直接检查了配置文件,并且设置 $config['allow_get_array'] 设置为 TRUE 默认
    • 乐于助人! :D
    【解决方案2】:

    这样写

    example.org?c=page&m=index
    

    没有“/”

    【讨论】:

    • 似乎没什么区别。
    猜你喜欢
    • 2011-08-09
    • 2015-03-20
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多