CodeIgniter скрывает идентификатор сообщения и показывает только заголовок в URL - PullRequest
0 голосов
/ 01 мая 2019

Я работаю в Codeigniter и хочу скрыть идентификатор от URL.

мой текущий URL:

www.localhost/CI/services/1/ac_repair

, но нужен этот тип URL в codeigniter:

www.localhost/CI/services/ac_repair

Просмотр кода страницы:


<?=anchor('services/' . $ser->s_id . '/' . url_title($ser->s_title,'_') ,'View Service');?>

Код контроллера:


public function services()
    {
        $this->load->model('ServicesModel', 'ser_model');


        $s_id = $this->uri->segment(2, 0);
        if($s_id){

            $get_service = $this->ser_model->get_ser($s_id);
            return $this->load->view('public/detail', compact('get_service') );
        }
        else
        {
            // $services = $this->articles->articles_list( $config['per_page'], $this->uri->segment(3) );
        $get_services['result'] = $this->ser_model->all_services_list();
        // $this->load->view('public/services', ['services'=>$services]);

        $this->load->view('public/services', $get_services);
        }
    }

Код модели здесь:


public function get_ser($id)
    {
        // $q = $this->db
        $q = $this->db->select('*')
                ->from('services')
                ->where( ['s_id' => $id] )
                ->get();
        if ( $q->num_rows() )
            return $q->row();
        return false;
    }

, но нужен этот тип URLв коде:

www.localhost/CI/services/ac_repair

1 Ответ

0 голосов
/ 02 мая 2019

Если вы хотите эту функцию, вы должны иметь возможность использовать свой заголовок ac_repair вместо id. Это означает, что заголовок должен быть помечен как unique и поэтому не должен содержать дубликатов.

Следующий псевдокод должен дать вам представление:

function services($url_title = null) {

     if (!is_null($url_title)) {

         // get ser would use title instead of $id
         $this->db->where('title', $url_title);     

     } else {

         // all rows

     }

}

Другие методы были бы "хакерскими", и я не могу думать ни о чем другом, что я бы счел пригодным для использования.

Примечание: вы никогда не должны возвращаться в виде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...