Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不使用$\u获取参数_Php_Codeigniter_Get - Fatal编程技术网

Php 不使用$\u获取参数

Php 不使用$\u获取参数,php,codeigniter,get,Php,Codeigniter,Get,在使用CodeIgniter时,默认情况下$\u GET被禁用。我想知道为什么会这样 很多时候,我想构建很长的搜索查询。例如,我有一个表单,允许您通过N个不同的字段搜索数据库。在code igniter中,显示我的搜索结果的url为: 因此,一个示例url是 我并不特别喜欢这个,因为: 1) 如果我想在以后添加更多搜索参数,这样我们就可以: 我不喜欢我在页面末尾添加“仅限男孩”和“库存”的方式,也不喜欢url的部分。感觉不对 2) 如果一个人不使用“玩具”部分和“教育”部分怎么办?然后ur

在使用CodeIgniter时,默认情况下$\u GET被禁用。我想知道为什么会这样

很多时候,我想构建很长的搜索查询。例如,我有一个表单,允许您通过N个不同的字段搜索数据库。在code igniter中,显示我的搜索结果的url为:

因此,一个示例url是

我并不特别喜欢这个,因为:

1) 如果我想在以后添加更多搜索参数,这样我们就可以:

我不喜欢我在页面末尾添加“仅限男孩”和“库存”的方式,也不喜欢url的部分。感觉不对

2) 如果一个人不使用“玩具”部分和“教育”部分怎么办?然后url看起来有点笨拙


使用$\u GET参数进行搜索是否更有意义,因为这样一来,放置查询字符串参数的顺序(&field=value)就无关紧要了?省略查询字符串参数会自动表示“未选择”。

首先,如果需要,您可以始终启用$\u GET变量

此外,您还可以使用参数,如
。/shopping/type:toys/cat:education/age:6-8/sort:price\u asc
,然后在控制器代码中解析它们:

function shopping() {
  $args = func_get_args();
  foreach ($args AS $arg) {
    list($filter_name, $filter_value) = explode(':', $arg, 2);
    if ($filter_name == 'cat') {
      // set category filter to $filter_value (education)
    } elseif ($filter_name == 'type') {
      // set type filter to toys
    }
    // etc etc
  }
}

首先,如果愿意,您可以始终启用$\u GET变量

此外,您还可以使用参数,如
。/shopping/type:toys/cat:education/age:6-8/sort:price\u asc
,然后在控制器代码中解析它们:

function shopping() {
  $args = func_get_args();
  foreach ($args AS $arg) {
    list($filter_name, $filter_value) = explode(':', $arg, 2);
    if ($filter_name == 'cat') {
      // set category filter to $filter_value (education)
    } elseif ($filter_name == 'type') {
      // set type filter to toys
    }
    // etc etc
  }
}

他们这样做的原因是它会干扰控制器、函数和参数的调用

CI使用URI字符串告诉“程序”要做什么。您可以启用一种模式来实现此目的:

www.example.com/controller/method/parameter
为此:

www.example.com/?c=controller&m=methods&p=parameter1&yourgetitem=yourgetvalue

虽然没有那么漂亮,但你肯定可以用CI做任何你喜欢的事情;这只需要一些调整。

他们这样做的原因是它会干扰控制器、函数和参数的调用

CI使用URI字符串告诉“程序”要做什么。您可以启用一种模式来实现此目的:

www.example.com/controller/method/parameter
为此:

www.example.com/?c=controller&m=methods&p=parameter1&yourgetitem=yourgetvalue

虽然没有那么漂亮,但你肯定可以用CI做任何你喜欢的事情;这只需要一些调整。

您也可以对搜索参数使用不同的分隔符,如
+
(许多系统都这样做)。它们被传递到单个控制器路由,在那里您可以根据需要
explode()
。示例:
http://http://mysite.com/shopping/toys+教育+年龄8+等

您也可以对搜索参数使用不同的分隔符,如
+
(与许多系统一样)。它们被传递到单个控制器路由,在那里您可以根据需要
explode()
。示例:
http://http://mysite.com/shopping/toys+教育+年龄8+等

在CodeIgniter中既可以使用查询字符串,也可以使用段,方法如下:

在config.php集合中:

  • $config['uri_protocol']=“路径信息”
  • $config['enable_query_strings']=TRUE

在.htaccess中,使用/after index.php而不是?在您的CI规则:RewriteRule^(.*)$index.php/$1[L]

中,可以在CodeIgniter中同时使用查询字符串和段,方法如下:

在config.php集合中:

  • $config['uri_protocol']=“路径信息”
  • $config['enable_query_strings']=TRUE
在.htaccess中,使用/after index.php而不是?在您的CI规则上:RewriteRule^(.*)$index.php/$1[L]

非常类似于:非常类似于: