Code Igniter не загружает функции с моего контроллера
Сегодня я начал с codeIgniter и следую учебному пособию для начинающих с phpacademy. Прямо сейчас у меня странная проблема. я получил следующий очень простой контроллер:
<?php if ( ! defined('BASEPATH')) exit("No direct script access allowed");
class Site extends CI_Controller {
public function index()
{
}
public function home()
{
$this->load->view("view_home", $data);
}
function about()
{
$data['title'] = "About!";
$this->load->view("view_about", $data);
}
function test()
{
echo "test";
}
}
Он всегда отлично загружает индексную функцию. Когда я проверяю это, оно отражается от того, что я хочу, чтобы оно отражалось. Но когда я вызываю другие функции, ничего не происходит.
Я еще не настроил свой.htacces, но когда я захожу на следующий адрес: localhost:8899/index.php/site/home
это не загружает домашнюю функцию. то же самое относится и к другой функции ("о" и "тест");
Когда я вызываю одну из функций ("home", "about" и "test") из функции index(), она вызывает ее так, как должна:
class Site extends CI_Controller {
public function index()
{
$this->home();
}
public function home()
{
$this->load->view("view_home", $data);
}
Я не совсем уверен, что здесь происходит не так. Надеюсь, кто-то может направить меня в правильном направлении!
Мои маршруты:
<?php if ( ! defined('BASEPATH')) exit("No direct script access allowed");
$route['default_controller'] = "site";
$route['404_override'] = '';
1 ответ
If somebody came across this since no solutions above worked, ok you can try these steps where i got the thing worked (local with xampp):
- Change the
base_url
inconfig.php
intohttp://localhost/application-name/
- Empty the
index_page
(the default value should beindex.php
) - Go to root folder of your application and check that
index.php
is there Make
.htaccess
file in there and write into that these:RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
Я хотел бы убедиться, что у класса контроллера есть конструктор для загрузки базовых базовых классов codeigniter.
function __construct()
{
parent::__construct();
}
в каждом контроллере класс говорит вашему классу использовать систему воспламенения кода. если этого нет, он не будет знать, как загрузить эти функции.
Просто чтобы быть понятным, убедитесь, что он вызывает другие методы с помощью url / site / about и т.д... Кроме того, у вас есть ошибки php, отображаемые на вашем сервере разработки?