Я новичок в MVC и Codeigniter, но у меня что-то работает, хотя и не так, как хотелось бы, и мне интересно, может ли кто-нибудь мне помочь?
У меня есть 2 страницы на моем веб-сайте (лига, игроки) в подкаталоге codeigniter, и в настоящее время мой URL-адрес для доступа к ним: «http://www.mydomain.co.uk/codeigniter/index.php/golf' и 'http://www.mydomain.co.uk/codeigniter/index.php/players'
1) Как удалить index.php из URL-адреса? Я пробовал $config['index_page'] = ''; в config/config.php и установите файл .htaccess, но не повезло.
2) Я хочу только указать свой контроллер по умолчанию в route.php на контроллер гольфа и позволить контроллеру обрабатывать любую запрашиваемую страницу.
3) Правильно ли я это настроил, а если нет, то как правильно? Один контроллер подходит?
.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();
}
}
?>
views/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 ?>
views/players.php
<p>This is players</p>