0

私は MVC と Codeigniter を初めて使用しますが、何かが機能していますが、私が望むようには機能していません。

私のウェブサイト (リーグ、プレーヤー) には、codeigniter サブディレクトリに 2 つのページがあり、現在、それらにアクセスするための URL は ' http://www.mydomain.co.uk/codeigniter/index.php/golf ' と 'です。 http://www.mydomain.co.uk/codeigniter/index.php/players '

1) URL から index.php を削除するにはどうすればよいですか? $config['index_page'] = ''; を試しました config/config.php で .htaccess ファイルを設定しますが、うまくいきません。

2) 私は、routes.php のデフォルト コントローラーをゴルフ コントローラーに向けるだけで、要求されているページをコントローラーで処理できるようにしたいと考えています。

3)これを正しく設定しましたか、そうでない場合、適切な方法は何ですか?コントローラは 1 つですよね?

.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ codeigniter/index.php/$1 [L]

config/routes.php

$route['default_controller'] = 'golf';
$route['players'] = 'golf/players'; <-Don't really want this entry!

config/autoload.php

$autoload['libraries'] = array('database');
$autoload['helper'] = array('url');

コントローラー/golf.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

  class Golf extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function index() {
       $this->load->model('league_model');
       $data['league'] = $this->league_model->get_League();
       $data['title'] = 'League Table';

       $this->load->view('templates/header', $data);
       $this->load->view('templates/menu');
       $this->load->view('league', $data);
       $this->load->view('templates/footer');
    }

    public function players() { //Runs because of entry in config/routes.php
        $route['players'] = 'golf/players';
        $data['title'] = 'Players';

        $this->load->view('templates/header', $data);
        $this->load->view('templates/menu');
        $this->load->view('players', $data);
        $this->load->view('templates/footer');
    }

  }

?>

モデル/league_model.php

<?php

  class League_model extends CI_Model {

    public function __construct() {

    }

    public function get_League() {
      $this->db->from("player");
      $this->db->order_by("name", "asc");
      $query = $this->db->get(); 
      return $query->result_array();
    }

  }

?>

ビュー/league.php

<p><?php echo $title; ?></p>
<?php foreach ($league as $item): ?>
    <p><?php echo $item['name']." : ".$item['handicap']." : ".$item['bbnetbirdie']." : ".$item['bb4p'] ?></p>
<?php endforeach ?>

ビュー/players.php

<p>This is players</p>
4

2 に答える 2

0

私が使用する単純な.htaccessファイル:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L] 

config.php ファイルで、index.php への参照をすべて削除します。

$config['index_page'] = ''
于 2013-07-03T13:32:48.103 に答える