Я хочу получить уникальный слаг для своих статей. Я использую кодигнитер. Мне было интересно иметь что-то вроде sample-title-1
и sample-title-2
, если есть две статьи с одинаковым заголовком, как это делает codeignier с загрузкой файла filename(:num)
. Я не мог понять, как это сделать. Я не эксперт по codeigniter. Я изучаю это.
Я подготовил функцию, когда передается строка $str
, она проверяет, существует ли слаг, если да, то добавляет ID
этой статьи в конец этого слага и возвращает его, если нет, возвращает слаг.
Он отлично работает и служит уникальной цели. Но я хотел, чтобы было что-то вроде sample-title-1
и sample-title-2
. Есть ли способ сделать это?
$data['slug'] = $this->get_slug($data['title']);
public function get_slug ($str)
{
$slug = url_title($str, 'dash', true);
// Do NOT validate if slug already exists
// UNLESS it's the slug for the current page
$id = $this->uri->segment(4);
$this->db->where('slug', $slug);
! $id || $this->db->where('id !=', $id);
$category = $this->category_m->get();
if (count($category)) {
return $slug.$id;
}
return $slug;
}