2016-10-10 5 views
1

CodeIgniter Web Frameworkを使ってスラッグを作成したいが、私のコードがうまくいかない理由はわからない。あなたを何度もリダイレクトしました "。ここ は私のルート設定である:ここCodeIgniterを使用して私の機能にスラッグを追加したいが、私のコードが機能していない

$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');     
    }    
} 
+0

これは 'if($ slug === '')が真を返すことを意味します。 –

+0

スクリプトにこのコードを追加すると$ slug = url_title($ data ['blog'] [0] ['blog_title']、 'dash'、true); readblogの私をリダイレクトしますが、私はredblogの前にブログを設定したい –

+0

if条件は、スラッグの値がそのページにリダイレクトされる空の文字列であることを意味します。それが等しくないようにしてみてください –

答えて

0

あなたの条件if ($slug === '')がループを作成し、私のコントローラです。理由は次のとおりです。関数readblog()は、$ slugパラメータに空の文字列で呼び出されました。この条件では、空の文字列が表示され、同じ空の文字列をパラメータとして渡して同じ関数にリダイレクトされます。条件がまだ存在しているため、再度リダイレクトされます。最終的にブラウザは何が起こっているのかを認識し、エラーを発行します。

次のいずれかを行う必要があります。同じURLにリダイレクトする前に$ slugを有効な文字列に設定してください。問題を説明する他のURLにリダイレクトする。問題を説明するビューをロードします。

関連する問題