【问题标题】:I want to add slug in my function using CodeIgniter but my code is not working我想使用 CodeIgniter 在我的函数中添加 slug 但我的代码不起作用
【发布时间】: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

标签: php codeigniter url slug


【解决方案1】:

您的条件if ($slug === '') 创建了一个循环。这就是为什么。函数 readblog() 刚刚在 $slug 参数中使用空字符串调用。该条件看到空字符串,然后重定向回相同的函数,将相同的空字符串作为参数传递。条件仍然存在,因此它一次又一次地重定向。最终浏览器意识到发生了什么并发出错误。

您需要执行以下操作之一;在重定向回相同的 URL 之前将 $slug 设置为有效字符串;重定向到解释问题的其他 URL;加载一个解释问题的视图。

【讨论】:

    猜你喜欢
    • 2012-09-08
    • 2021-10-03
    • 1970-01-01
    • 2021-12-12
    • 2017-01-15
    • 1970-01-01
    • 2017-03-17
    • 2023-03-15
    • 2012-10-19
    相关资源
    最近更新 更多