【问题标题】:codeigniter uri repeating after second self-call to controllercodeigniter uri 在第二次自调用控制器后重复
【发布时间】:2023-04-02 14:24:01
【问题描述】:

我移植了一些编辑脚本,这些脚本会重复调用 CI。他们第一次工作得很好,但第二次就不行了。我看到它是不断增长的 URI。

在尝试找到我的脚本中的错误,或者我将它们放在子文件夹等的事实之后,我 发现这与它无关。

我设置了这个基本测试: CONTROLLER test_edit 除了获取 url-string 什么都不做:

  index() 
  {   
      $data['uri_string']=uri_string(); 
      $this->load->view('test_edit',$data);
   }

   index2() 
   {  
      $data['uri_string']=uri_string(); 
      $this->load->view('test_edit',$data);
   }

VIEW test_edit 只显示 url 字符串和指向 CONTROLLER 的链接:

  <p>URI=<?=$uri_string ?></p>;
  <p><a href="test_edit">test_edit</a></p>;
  <p><a href="test_edit/index2">test_edit/index2</a></p>;

这导致
URI=
第一次点击第一个链接后
URI=test_edit/index

第二次点击第一个链接后
URI=test_edit/test_edit/index
单击第二个链接将(显然)给出 404 错误。

我的问题: - WTF 导致这个???为什么每次调用都没有刷新 URI(缓存?),或者添加了哪些段:浏览器、路由器类?

注意:不要对我使用 base_url 嗤之以鼻,URI 翻译的重点不是使用绝对标准 URL 或绝对路径。我知道如何解决这个问题,但我不想这样做。我想了解。

【问题讨论】:

  • 注意:抱歉格式化。 SO中的第一个帖子,并且忙于习惯格式化以纠正我的英语。
  • 可能是错误的$config['base_url'](不要忘记最后需要的斜线,例如http://localhost/project/
  • 这篇文章需要认真编辑,即使只是为了代码。

标签: php codeigniter


【解决方案1】:

像这样声明&lt;a&gt; tags

<a href="<?=base_url('test_edit/index2')?>">test_edit/index2</a>

代替:

<a href="test_edit/index2">test_edit/index2</a>

如果不使用base_url(),则使用anchor() of CI

anchor('string_path', 'title');

【讨论】:

  • @user2787967 对试图帮助你的人无礼并不是让人们帮助你的好方法。 jfc
  • 你真的应该考虑在任何地方使用base_url(''),你有问题的链接是“延迟的”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
相关资源
最近更新 更多