Welcome Guest, Not a member yet? Register   Sign In
Route html button to home page, correct method
#1

My question is what is the CORRECT way to take standard HTML syntaxed button and make the redirect to home page work. I am new to codeigniter and i am flummoxed honestly by the sheer depth of codeigniter 4 routes vs standard html routing. My routes are all verb based with the usage of namespace for Front/Back folders. I keep getting 404 not found or other errors when typing something into the href field. I did follow instructs for remove index.php. I want to do this securely but it is unclear what is the right vanilla method.  I need to see a basic html website, its buttons converted  into verb-based routes with effective returns back through the heirarchy. I would also like it to be low maintenance where one change wont result in having to update 48 routes that are difficult to understand later on. 
The button link i want converted to codeigntier 4 route syntax:
  <a href="../../index.html" class="btn btn-lg btn-secondary"> Home </a> 
The top of my default controller OPages is as follows:
namespace App\Controllers\Front;
use App\Controllers\BaseController;

class OPages extends BaseController
{
public function index()
{  // home svcs index page
return view('pages/home');
}

Top of my routes page is as follows:

$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('OPages');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
$routes->setAutoRoute(false);
$routes->get('/', 'Front\OPages::index');

// all core services outer pages
$routes->get('home',                   'Front\OPages::index');
$routes->get('category1',            'Front\OPages::category1');
$routes->get('category2',            'Front\OPages::category1');

basically when i am in category 1,2 or 3 i need a return button to the home page that works

My app page configuration is as follows:

public $baseURL = 'http://example.com/';
public $indexPage = '';
public $uriProtocol = 'REQUEST_URI';

My htaccessfile currently in use is as follows:
I did migrate project from Xampp to Laragon so possibly something needs to change in here.....

# Disable directory browsing
Options All -Indexes

# ----------------------------------------------------------------------
# Rewrite engine
# ----------------------------------------------------------------------

# Turning on the rewrite engine is necessary for the following rules and features.
# FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On

# If you installed CodeIgniter in a subfolder, you will need to
# change the following line to match the subfolder you need.
# http://httpd.apache.org/docs/current/mod...ewritebase
# RewriteBase /

# Redirect Trailing Slashes...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Rewrite "www.example.com -> example.com"
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

# Checks to see if the user is attempting to access a valid file,
    # such as an image or css document, if this isn't true it sends the
    # request to the front controller, index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA]

# Ensure Authorization header is passed along
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    ErrorDocument 404 index.php
</IfModule>

# Disable server signature start
    ServerSignature Off
# Disable server signature end
Reply
#2

Solution: <a href="<?php echo base_url('home'); ?> " class="btn btn-lg btn-secondary">Services Home </a>

Despite using verb routes the names chosen for them could be referenced using this url helper call
url helper is autoloaded from the beginning, no additional statements were needed in controllers
no redirects had to be declared in routes for this to work.
Reply
#3

You can also use a named route and then use the route_to
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply
#4

This playground sample app that MGatner put together a while ago might help out. It's a simple app with lots of comments throughout on the what's and whys. A good simple thing to study.

If you want more in-depth examples, I'm currently in the middle of rebuilding Bonfire, which will be a pretty thorough application starter pack when it's done. That might be best saved for when you're more comfortable with the general concepts, though, since it makes use of View Layouts, View Cells, and a modular structure apart from your app. Hopefully the Playground will be enough to get you pointed in the right direction!
Reply




Theme © iAndrew 2016 - Forum software by © MyBB