View files are the frontend pages which a user sees. A view is simply a web page, or a page fragment, like a header, footer, sidebar, etc. In fact, views can flexibly be embedded within other views (within other views, etc.) if you need this type of hierarchy.
As we discussed welcome_message.php is the default view layout file in application.
All the HTML code will be in view files. Views will be stored inside /app/Views folder.
There is no naming convention to create a view file. You can create with your own name and include .php with it.
Create First View
Create a file with any name say my-page.php inside /app/Views folder.
Open file and write this code into it.
<html>
<head>
<title>My Page</title>
</head>
<body>
<h1>Welcome to my Page!</h1>
</body>
</html>
Load in controller
Open any controller from your application say Home.php. Add a method into that controller and link your view file.
<?php
namespace App\Controllers;
class Home extends BaseController
{
//...
public function aboutUs()
{
return view('my-page');
}
//...
}
Loading Multiple Views
Let’s say we have multiple view files like header.php, sidebar.php, content.php, & footer.php. So how can we load multiple view files into method of controller.
Here is the way to do that.
<?php
namespace App\Controllers;
class Home extends BaseController
{
//...
public function aboutUs()
{
echo view('header');
echo view('sidebar');
echo view('content');
echo view('footer');
}
//...
}Views from sub-directories
So far we placed all view files inside /app/Views. If we want to keep our view files inside any of the created sub-directories. So how can we link with controller?
Say we have a include folder inside /app/Views folder. Inside this include folder all we have the views like header.php, sidebar.php & footer.php
Syntax
echo view('directory_name/file_name');
To link all these files –
<?php
namespace App\Controllers;
class Home extends BaseController
{
//...
public function aboutUs()
{
echo view('include/header');
echo view('include/sidebar');
echo view('content');
echo view('include/footer');
}
//...
}