2015-01-19 4 views
-1

У меня проблема с кодом воспламенитель, у меня есть следующий код (user_stats.php):ошибка 404 Codeigniter страница при вызове метода

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
class User_stats extends MX_Controller 
{ 
    function __construct() { 
     parent::__construct(); 
    } 
    function user_stats() { 
     echo "Hello"; 
    } 
    function detect_location() { 
     echo "World"; 
    } 
} 

Если я вызываю метод, например, через URL http://test/user_stats/detect_location Я получаю выходной мир, но когда я загружаю http://test/user_stats/user_stats, я получаю сообщение об ошибке 404. Я проверил журналы и по какой-то причине запрос был для http://test/user_stats/index (при попытке загрузить http://test/user_stats/user_stats). Мой файл Htaccess имеет следующий код:

RewriteEngine on 
RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

и конфигурационный файл настроен как:

$config['index_page'] = ''; 

$config['uri_protocol'] = 'AUTO'; 

$config['url_suffix'] = ''; 

Любая помощь в решении этого будет оценена.

Благодаря

ответ

2

В основном ваше имя Класс User_stats и имя функции user_stats же. Имя функции с тем же именем класса рассматривается как функция построения. если вы удалите свой function __construct() и ударил этот адрес http://test/user_stats/detect_location результата, Вы получите

Hello World 

Этот случай user_stats является ваша функция конструкт.
На самом деле у вас есть две функции построения, а function user_stats бесполезно, если вы держите function __construct(). Вы не можете иметь две функции построения для класса с одинаковыми аргументами.

+0

Спасибо, я новичок в MVC/OOP и очень многому научился – Dino

0

Изменить имя функции user_stats() в index() и открытый config/routes.php файл и добавьте эту строку в ней:

$route['user_stats/user_stats'] = "user_stats/index"; 

Примечание: в качестве @oldlearner сказал, функция действовать как конструктор, и это осуждается в php5.

Смежные вопросы