How to create slug in codeigniter
How to create slug in codeigniter
Published Nov 01,2020 by Kailash Singh
0 Comment 9817 Views
In this tutorial, we are going to create how to create slug in codeigniter.
A slug is a part of the URL when you are accessing a resource. Say you have a URL, such as the one below, that displays all of the posts in the system:
For eg:
http://localhost/codeigniter/view/1/how-to-upload-file-using-javascript-and-php
Step 1 :- Create post table in database.
CREATE TABLE `elevenstech`.`posts` ( `id` INT NOT NULL AUTO_INCREMENT , `title` TEXT NOT NULL , `description` LONGTEXT NOT NULL , `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY (`id`)) ENGINE = InnoDB;
Step 2 :- Create Home Controller ( Home.php ).
In this conttoller. We are creating view page to load all posts.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
public function index()
{
//load all post from posts table
$lists = $this->db->select('*')->from('posts')->get()->result();
$this->load->view('home',['lists'=>$lists]);
}
}
?>
Step 3 :- Create View Page in View Folder ( home.php ).
In this view page. We are loading all posts with the help of foreach loop.
<?php foreach ($lists as $list) { ?>
<div class="box_border">
<h4><?php echo $list->title; ?></h4>
<a href="#">View</a>
</div>
<?php } ?>
Step 4 :- Create Slug in helper Folder ( site_helper.php ).
In this helper file. We are creating a slug function.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
function slug($string, $spaceRepl = "-")
{
$string = str_replace("&", "and", $string);
$string = preg_replace("/[^a-zA-Z0-9 _-]/", "", $string);
$string = strtolower($string);
$string = preg_replace("/[ ]+/", " ", $string);
$string = str_replace(" ", $spaceRepl, $string);
return $string;
}
Step 5 :- Define slug file in home Controller ( Home.php ).
In this controlller. We are calling slug function in contructor so that i can use this function on the view page.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->helper('site_helper'); // load helper file
}
public function index()
{
$lists = $this->db->select('*')->from('slug')->get()->result();
$this->load->view('home',['lists'=>$lists]);
}
}
Step 5 :- Create slug in anchor tag ( home.php ).
<?php foreach ($lists as $list) { ?>
<div class="box_border">
<h4><?php echo $list->title; ?></h4>
// here i am using slug
<a href="<?php echo base_url().'view/'.$list->id.'/'.slug($list->title) ?>">View</a>
</div>
<?php } ?>
Step 6 :- Now use routing for view page.
$route['view/:num/(:any)'] = 'home/view/$1';
Step 7 :- Create view page for view post.
public function view()
{
//here i getting id from the url
$id = $this->uri->segment(2);
$lists = $this->db->select('*')->from('slug')->where('id',$id)->get()->row();
$this->load->view('view',['list'=>$lists]);
}
Step 8 :- Create view page to view post ( view.php ).
<?php
echo $list->title;
echo $list->description;
?>
Result :-
Comments ( 0 )
Elevenstech Web Tutorials
Elevenstech Web Tutorials helps you learn coding skills and enhance your skills you want.
As part of Elevenstech's Blog, Elevenstech Web Tutorials contributes to our mission of “helping people learn coding online”.
Read More
Newsletter
Subscribe to get the latest updates from Elevenstech Web Tutorials and stay up to date