【问题标题】:dynamic route in codeigniter don't workcodeigniter 中的动态路由不起作用
【发布时间】:2015-02-17 20:53:24
【问题描述】:

我在 codeigniter 路由中有问题。 我想将网址从:http://example.com/test/news_details?id=17 更改为 http://example.com/test/funy-url-makerhttp://example.com/funy-url-maker

我可以动态地制作 $route 但它不起作用。 我的代码:

$route[rawurlencode("'" . str_replace(' ', '-', $string)) . "'"] = "test/news_details?id=" . $id;

我打印路线,所有路线都将完美添加,但是当我想打开 http://example.com/test/funy-url-maker 时,我将重定向 404 页面:( 有什么想法吗?

注意: 当我将其用作静态时,它可以完美地工作。就像:

$route[rawurlencode('funyNews')] = "test/b_news";

【问题讨论】:

  • 请提供您如何定义$string 变量
  • require_once (BASEPATH . 'database/DB' . EXT); require_once (BASEPATH . 'helpers/url_helper' . EXT); require_once (BASEPATH . 'helpers/text_helper' . EXT); $db = &DB(); $query = $db -> get('news'); $result = $query -> result(); foreach ($result as $row) { $route[rawurlencode("'" . str_replace(' ', '-', $row->subject)) . "'"] = "test/news_details?id=" . $row->id; } 你在这里 :)
  • 嘿,好像他们正在更新 Stack Overflows 服务器..
  • 无论如何,你能提供给我你的$result 变量的var_dump 结果吗?
  • 其中有 utf8 字符(很多),例如 :[5]=> object(stdClass)#15 (6) { ["id"]=> string(2) "17" ["主题"]=> string(21) "这将是正确的" ["brief"]=> string(8) "testing" ["message"]=> string(4) "test" ["image"]= > string(1) "t" ["tag"]=> string(13) "#Ùناوری" }

标签: codeigniter codeigniter-2 codeigniter-url


【解决方案1】:

好吧,在所有的问题和答案之后,我想你正在寻找这样的东西:

foreach ($result as $row) {
    $string = rawurlencode(str_replace(' ', '-', strtolower($row->subject)));
    $route[$string] = "test/news_details/$row->id";
}

和你的控制器:

function news_details($id){
    var_dump($id);
}

【讨论】:

  • hmmm,我想我回答错了你的一个问题:(,是的,你是对的,我希望我的路线寻找像http://www.yourhost.com/this-is-gona-be-right 这样的网址并将它们路由到http://www.yourhost.com/news_detais?id=17,最后我想要看到这个http://www.yourhost.com/this-is-gona-be-right进入我的网址。我从http://www.yourhost.com/news_detais?id=17获得所有内容
  • 好吧,在这种情况下,这意味着您希望您的路由查找像http://www.yourhost.com/this-is-gona-be-right 这样的网址并将它们路由到http://www.yourhost.com/news_detais?id=17。我会更新我的答案。
  • 是的,亲爱的朋友。 tnx 这么多。我尝试了很多,但没有给出结果:(
  • tnx 为您解答,但:404 Page Not Found The page you request was not found.
  • 我认为,?id= 有问题,因为静态路由永远不会有问题。
猜你喜欢
  • 2011-11-07
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多