Я попытался создать некоторые контроллеры, модели и представления с помощью – дефис, но я всегда получаю php-ошибку, поэтому я использую подчеркивание прямо сейчас.
поэтому мой url: http: // localhost: 8888 / ci / index.php / get_artist_discography / artist_name
я хотел бы быть таким: http: // localhost: 8888 / ci / index.php / get-artist-discography / artist-name
возможно ли у него URL-адреса с дефисом в кодеригните?
мой код:
/ контроллеры:
<?php include (APPPATH.'/libraries/REST_Controller.php'); class get_artist_discography extends REST_Controller { function artist_name_get(){ $data = new stdClass(); $this->load->model('artist_model'); $data = $this->artist_model->getAll();$this->response($data, 200); } }
/ модель:
<?php class artist_model extends CI_Model { function getAll(){ $q = $this->db->query("SELECT artist_discography,artist_name from music"); if($q->num_rows() > 0) { foreach ($q->result() as $row) { $data [] = $row; } return $data; } } }
Да, ты можешь.
Обычно CI создает url как this base_url / имя_контроллера / имя метода.
Как вы знаете, имя контроллера и имя метода не могут содержать «-» (дефис), поэтому вы не можете изменить свое имя.
Что вы можете сделать, это использовать маршрутизатор для отображения правильного контроллера с соответствующим URL-адресом.
Как вы можете написать этот код в config / routes.php
$route['get-artist-discography/artist-name'] ='get_artist_discography/artist_name';
Это выполнит ваш get_artist_discography
контроллер и метод artist_name
если ваша ссылка: http://localhost:8888/ci/index.php/get-artist-discography/artist-name
Вы можете узнать больше о маршрутизации URI в документах CI
если вы используете Codeigniter 3, откройте свою конфигурацию / routes.php
$route['translate_uri_dashes'] = TRUE;