Проблема с конструктором CI и URI

#codeigniter #constructor #continuous-integration #uri

#codeigniter #constructor #непрерывная интеграция #uri

Вопрос:

На самом деле я создаю простой веб-сайт с участниками, и я хотел отобразить страницу участника, просто позвонивhttp://www.mywebsite.com/member/membername

Член моего класса на самом деле работает хорошо, но я поместил код в функцию index, сделав член страницы доступным по адресуhttp://www.mywebsite.com/member/index/membername, что на самом деле не очень полезно.

Итак, классическим решением было поместить мой код в конструктор, но я получаю ошибку :

Страница 404 не найдена Запрошенная вами страница не найдена.

Это член моего класса :

 <?php

class Member extends CI_Controller {


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


           $segment_id = $this->uri->segment(2, 0);
           echo 'segment found ='.$segment_id;
           if ($segment_id == FALSE)
            {
                   echo '- No Segment -> Printing all members ';
                   $data = array();
                   $this->layouts->set_title('Welcome!');

                   $this->layouts->add_aside('newsletter_view');

                   if($query = $this->membership_model->show_all())
                    {
                        $data['records'] = $query;
                    }

                    $this->layouts->view('show_member', $data);
            }
            else
            {
                    echo '- Segment found -> Printing the member ';
                    $data = array();
                    $this->layouts->set_title('Welcome!');

                    $this->layouts->add_aside('newsletter_view');

                    if($query = $this->membership_model->show_member())
                    {
                            $data['records'] = $query;
                    }

                    $this->layouts->view('show_member', $data);
            }

    }

} 
  

И в завершение, это моя модельная функция:

 function show_member()
    {
                echo 'model show_member working';
        $this->db->where('username', $this->uri->segment(2));
        $query = $this->db->get('members');

                return $query->result();
    }

        function show_all()
        {
                echo "model show_all working";
                $query = $this->db->get('members');
        return $query->result();
        } 
  

Вы обнаружите некоторое эхо в. Все они отлично работают с URL-адресом с / member или / member / segment, и, как мне грустно, все работает, если я помещаю его в индекс

Большое спасибо за вашу помощь

Комментарии:

1. Ответ на : codeigniter.com/forums/viewthread/187548

Ответ №1:

Почему бы не использовать routes для этого?

Например, добавление маршрута route['member/(:any)'] = "member/index/$1"; должно сработать (хотя я его не тестировал).