我想使用 CodeIgniter 在我的函数中添加 slug 但我的代码不起作用
Posted
技术标签:
【中文标题】我想使用 CodeIgniter 在我的函数中添加 slug 但我的代码不起作用【英文标题】:I want to add slug in my function using CodeIgniter but my code is not working 【发布时间】:2017-02-18 15:20:31 【问题描述】:我想使用 CodeIgniter Web 框架创建一个 slug,但我的代码不工作我不知道它为什么会发生,它给了我这个错误“重定向你太多次”。 这是我的路线设置:
$route['readblog/(:num)/(:any)'] = 'blogs/readblog/$1/$2';
这是我的控制器
public function readblog($blog_id = null, $slug = '')
if ($slug === '')
redirect('readblog/'. $blog_id . '/' . $slug);
else
$data['title'] = 'Blogs is here for shakzee';
$this->load->view('home/header/header',$data);
$this->load->view('home/css/css');
$this->load->view('home/navbar/navbar2');
$this->load->view('blogs/readblog',$data);
$this->load->view('home/footer/footer');
$this->load->view('home/js/js');
【问题讨论】:
这意味着if ($slug === '')
正在返回 true。
如果在我的脚本中添加此代码 $slug = url_title($data['blog'][0]['blog_title'], 'dash', true);它在 readblog 上重定向我,但我想在 redblog 之前设置博客
您的 if 条件意味着如果 slug 值是一个空白字符串,它将重定向到该页面。试着让它不等于
您应该使用 == 而不是 ===。 === 是一个比较运算符,表示事物相同或类型相同。 php.net/manual/en/language.operators.comparison.php
【参考方案1】:
您的条件if ($slug === '')
创建了一个循环。这就是为什么。函数 readblog()
刚刚在 $slug 参数中使用空字符串调用。该条件看到空字符串,然后重定向回相同的函数,将相同的空字符串作为参数传递。条件仍然存在,因此它一次又一次地重定向。最终浏览器意识到发生了什么并发出错误。
您需要执行以下操作之一;在重定向回相同的 URL 之前将 $slug 设置为有效字符串;重定向到解释问题的其他 URL;加载一个解释问题的视图。
【讨论】:
以上是关于我想使用 CodeIgniter 在我的函数中添加 slug 但我的代码不起作用的主要内容,如果未能解决你的问题,请参考以下文章