I am new in CodeIgniter now I am creating a site. an Admin can view all records after login but unfortunately, the target URL shows 404 Page Not Found. I am using temple(header n footer) for a menu. here is my header.php
<div class="collapse navbar-collapse" id="navbarColor01">
<ul class="navbar-nav mr-auto" >
<?php if(!$this->session->userdata('logged_in')) : ?>
<li class="nav-item"><a class="nav-link" href="<?php echo base_url(); ?>users/login">Login</a></li>
<li class="nav-item"><a class="nav-link" href="<?php echo base_url(); ?>users/register">Register</a></li>
<?php endif; ?>
<?php if($this->session->userdata('logged_in')) : ?>
<li class="nav-item"><a class="nav-link" href="<?php echo base_url(); ?>posts">List Item</a></li>
<li class="nav-item"><a class="nav-link" href="<?php echo base_url(); ?>posts/create">Create Post</a></li>
<li class="nav-item"><a class="nav-link" href="<?php echo base_url(); ?>users/logout">Logout</a></li>
<li class="nav-item"><a class="nav-link" href="<?php echo base_url(); ?>admin">Admin</a></li>
<?php endif; ?>
</ul>
</div>
When I click the admin menu then it should be goto Admin Controller and call index function for cofirmation i put echo and die but it shows 404 error. here is my Admin Controller
<?php
class Admin extends CI_Controller{
public function index(){
echo "Reach here"; die;
if (!$this->session->userdata('logged_in')) {
redirect('users/login');
}
?>
Thanks in advance for assistance.
Put your admin link like this :
as Admin
is not your default controller
and you not set your route for admin
Put your admin
link like this
<li class="nav-item">
<a class="nav-link" href="<?php echo base_url('admin/index'); ?>">Admin</a>
</li>
but if you want to do like this :
<li class="nav-item">
<a class="nav-link" href="<?php echo base_url('admin'); ?>">Admin</a>
</li>
then set route.php
like this :
$route['admin'] = 'admin/index';
And controller :
<?php
class Admin extends CI_Controller{
public function index(){
echo "Reach here"; die;
if (!$this->session->userdata('logged_in')) {
redirect('users/login');
}
?>
Please use parent construct and after you can do your way.
public function __construct() {
parent :: __construct();
$this->load->model(array('restaurants_m', 'categories_m', 'cities_m', 'customers_m', 'states_m', 'orders_m', 'delivery_boys_m'));
$this->load->library(array('email'));
$this->load->helper('url');
}