Ошибка 404 несмотря на то, что страница существует Codeigniter - PullRequest
0 голосов
/ 06 января 2019

У меня есть что-то вроде website.com/profile/nameofuser, которое работает. Но если у меня есть website.com/profile/_nameofuser, я получаю 404 error, также website.com/profile/nameofuser_ или website.com/profile/nameof_user работает. Это не что-то, связанное с принятыми персонажами, но в чем проблема?

class Profile extends CI_Controller {

public function __construct() 
{       
    parent:: __construct();
    $this->load->model('Profile_model');  
    $this->load->helper(array('url', 'form', 'htmlpurifier'));
}

public function index() {
    $this->load->library('form_validation');

    if(getUserData($this->uri->segment(2), "ID") < 0) {
        $this->session->set_flashdata('error', 'Profil inexistent.');
        redirect(base_url());
    }

    if (!is_cache_valid(md5('profile' . $this->uri->segment(2) . ''), 300)){
            $this->db->cache_delete('profile', $this->uri->segment(2));
        }

    if(getUserData($this->uri->segment(2), "ID") > 0) {

        /* some mysql queries.. */
        }

        $data["main_content"] = 'profile/profile_view';
        $this->load->view('includes/template.php', $data); 
    } else {
        $this->session->set_flashdata('error', 'Profil inexistent.');
        redirect(base_url());
    }
}
function _remap($method,$args)
{
    if (method_exists($this, $method))
    {
        $this->$method($args);  
    }
    else
    {
        $this->index($method,$args);
    }
}
}

Вот мой профиль контроллера. Я действительно не знаю, в чем проблема. Если я введу неправильный профиль перенаправления с ошибкой flashdata, так что все в порядке. Может быть, это проблема переназначения?

Ответы [ 2 ]

0 голосов
/ 11 января 2019

в вашем звонке на /profile/nameofuser отсутствует основа архитектуры MVC.

Вам необходимо вызвать комбинацию контроллер / метод (в CI ваш основной URL-адрес - domain.com/controller/method) ...

, поскольку у вас нет конкретного метода для каждого пользователя в контроллере профиля, что на самом деле хорошо, вам нужен метод в контроллере, который обрабатывает ваших пользователей. Он у вас уже есть, он называется index

Если вы укажете свой URL на /profile/index/nameofuser и измените $this->uri->segment(2) на $this->uri->segment(3), вы должны заставить его работать

попробуй и дай мне знать

0 голосов
/ 07 января 2019

1) Проверьте формат fie в вашем файле просмотра .. если это HTML-файл, это означает, что вы не можете вызвать его без его формата например если ваш файл в формате php, имейте имя home-view.php Вы можете назвать это как

$this->load->view('home-view');

но если это html файл, то имя в home-view.html поэтому вы должны называть его с расширением

$this->load->view('home-view.html');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...