CodeIgniter URL Route с идентификатором и заголовком - PullRequest
0 голосов
/ 13 декабря 2018

Я новичок в CodeIgniter, и я хотел бы изменить свой URL с

http://test.com/1/test-post

на

http://test.com/test-post-1

в CI смаршрут.Как я могу добиться этого с помощью URL Route?

Мои сообщения в таблице

posts_id
posts_name

Мой домашний вид (для вызова сообщений)

Я использую название URL дляURL:

<a href="<?php echo base_url("{$v['posts_id']}/".url_title($v['posts_name'], "-", true)) ?>">

Контроллер моих сообщений

    <?php 
defined('BASEPATH') OR exit ('No direct script access allowed');
class Posts extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->model('Posts_model');
    }
    public function index()
    {
        show_404();
    }
    public function details($posts_id=NULL,$posts_name='') {
        $data['title'] = $this->Posts_model->select_content_by_id($posts_id);
        $data['data'] = $this->Posts_model->select_content_by_id($posts_id);
        $this->load->view('posts',$data);
    }
}

Мои сообщения Модель

 <?php 
defined('BASEPATH') OR exit ('No direct script access allowed');
class Posts_model extends CI_Model{
    public function dsPosts()
    {
        return $this->db->get('posts')->result_array();
    }
    public function select_content_by_id($posts_id)
    {
        return $this->db->where('posts_id',$posts_id)->get('posts')->result_array();
    }
}

Мой маршрут

$route['default_controller'] = 'home';
$route['404_override'] = '';
$route['(:num)'] = 'posts/details/$1';
$route['(:num)/(:any)'] = 'posts/details/$1/$2';

1 Ответ

0 голосов
/ 13 декабря 2018

Вы близки к ответу

$route['(:any)-(:num)'] = 'posts/details/$2/$1';

тогда на виду

<a href="<?php echo base_url(url_title($v['posts_name'], "-", true)."-{$v['posts_id']}".) ?>">

Вот и все.Но я предлагаю вам написать более ясные URL, потому что вы можете иметь более одного контроллера!Что произойдет, если у вас есть comments контроллер и вы хотите получить от него данные? (: любой) означает, что может быть любым

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