Codeigniterの基本を学んだが、その後停止した。だから私は再学習しています。codeigniterのページを読み込むためのスイッチケースを使用
私はこれを行うためのより高度な方法があることを知っていますが、私は理解することが私のやり方をしたいと思います。私は、私を混乱させるだけの高度なものを噛んでいません。貼り付けスニペットをオンラインでコピーするのは簡単ですが、私のコードですべてを理解したいと思っています。
とにかく私はいつもif文をphp、idkに戻していました。なぜなら、コードケースの中で適切なガイドラインを探したことがないので、switch caseが最もよく使い慣れたif文を使っていたことがあります。
私のプロジェクトでは、私のリンクはこのように作られています。
<a href="<?php echo base_url();?>pages/view/home">Homepage</a>
私のコントローラでは、どのページを読み込むかを知るために私のビューメソッドを設定しています。
$data = array('page' => $this->uri->segment(3,home));
switch ($data['page']){
case 'home';
$data['tile'] = "Homepage";
$data['page'] = "userhome";
break;
case 'login';
$data['tile'] = "Login";
$data['page'] = "userlogin";
break
}
$this->load->view('templates/header',$data);
$this->load->view('templates/navbar');
$this->load->view('pages/'.$data['page']);
$this->load->view('templates/footer');
しかし、動作しません。タイトルとページは変更されません。
if else文で簡単に実行できます。ケースを切り替える私はどこかで読ん
$temp = $this->uri->segment(3,'home');
if($temp == "home"){
$data = array('title' => 'Homepage' , 'page' => 'home');
$this->load->view('template/header',$data);
$this->load->view('template/navbar');
$this->load->view('pages/'.$data['page']);
$this->load->view('template/footer');
}else if($temp == "login"){
$data = array('title' => 'Login' , 'page' => 'userlogin');
$this->load->view('template/header',$data);
$this->load->view('template/navbar');
$this->load->view('pages/'.$data['page']);
$this->load->view('template/footer');
}
が他の場合よりも高速ですが、私はただ、これまでの他のページが病気将来的に作り、ログインし、ホームページが、ロードされますを作ったアイブあなたの最初の2ページを示しますよ同じようにコードが長くなります。だから、私はスイッチケースを使用することに興味がありました。あなたがあなたの代わりにdata['title']
の、data['tile']
に値を代入している、switch
文でミスタイプを持っているので
$temp = $this->uri->segment(3,'home');
switch ($temp){
case 'home':
$data = array('title' => "Homepager" , 'page' => "home");
$this->load->view('template/header',$data);
$this->load->view('template/navbar');
$this->load->view('pages/'.$data['page']);
$this->load->view('template/footer');
break;
case 'login':
$data = array('title' => "Login" , 'page' => "userlogin");
$this->load->view('template/header',$data);
$this->load->view('template/navbar');
$this->load->view('pages/'.$data['page']);
$this->load->view('template/footer');
break;
}
これを/ switchに使用するのが最良の方法ではないと思います。 CodeIgniterには、独自のルータがあり、それを使用してページごとに1つの関数を記述します。そしてあなたの問題では、 '$ data ['page']'変数を 'var_dump'して、値が適切かどうかを調べます。 –