我想使用 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 但我的代码不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter _remap 函数

我的 Codeigniter 使用 ajax 自动完成

想要在 codeigniter 中创建动态子域?

DataTables 函数在 Codeigniter 中不起作用

我如何从 Codeigniter 中的助手调用助手?

更新查询增量字段加 1 个 codeigniter 函数