我是Ci的新手我可以在函数中使用“ - ”,因为我需要干净的网址
例如
我的网址如下: www.xyz.com//test/media_page?media_id=1&course_id=2
但我需要在下面:
www.xyz.com/test/media-page?media-id=1&course-id=2
当我更改功能时会说出一些错误,所以我确认了这一点,所以如果有任何想法请与我分享。
提前感谢....
请告诉我更多的事情,如果为此我必须更改任何东西。
答案 0 :(得分:0)
您不能在PHP中使用函数名中的连字符。只接受字母,数字和下划线。
Function names follow the same rules as other labels in PHP. A valid function name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.
来自http://php.net/manual/en/functions.user-defined.php
如果要实现此目的,可以使用Code Igniter中的路由。或者,您可以在控制器中包含并实现_remap
函数,以将带有连字符的URL发送到相应的函数,用下划线替换连字符。
答案 1 :(得分:0)
您可以在codeigniter中使用_remap()方法来实现此
示例强>
在测试控制器中使用此方法。您可以使用$ this-> input-> get()获取GET参数。这不会有任何麻烦
public function _remap($object, $params)
{
//replace your hyphen as underscore
$method = str_replace('-','_', $object);
//verify method is exist or not
if(!method_exists($this, $method_name))
{
//throw error or load default method index
die();
}
//trigger the method
call_user_func_array(array($this, $method_name), $params);
}
答案 2 :(得分:0)
您可能需要自定义CodeIgniter Routing才能将-
翻译为_
。这些方面的东西:
$route['test/media-page?media-id=:num&course-id=:num'] = "test/media_page?media_id=$1&course_id=$2";