-
Notifications
You must be signed in to change notification settings - Fork 0
02_controllers__02_request
The task of the request class is to gather information about the current request and route requests to the appropriate action.
An instance of the request object is always available in controllers and it can be accessed like this:
$this->request
You can request a controller action within another controller action using subrequests.
$response = Request::factory('controller/action')->execute();
The controller method returns the name of the requested controller.
$controllerName = $this->request->controller();
The action method returns the name of the requested controller.
$actionName = $this->request->action();
The ip method returns the ip address of the client who made the request.
$ip = $this->request->ip();
The referer method returns the URL of the referer.
$referer = $this->request->referer();
The route method returns the route of the request.
$route = $this->request->route();
The method method returns the request method that was used.
if($this->request->method() == 'POST')
{
// Do something
}
The header method returns a HTTP header.
$header = $this->request->header('user-agent');
// You can also specify a default return value if the header isn't set
$header = $this->request->header('foo-bar', 'default value');
The username method returns the basic HTTP authentication username or NULL.
$username = $this->request->username();
The password method returns the basic HTTP authentication password or NULL.
$password = $this->request->password();
The isAjax method returns TRUE if the request was made using AJAX and FALSE it not.
if($this->request->isAjax())
{
// Do something
}
The isSecure method returns TRUE if the request was made using HTTPS and FALSE it not.
if($this->request->isSecure())
{
// Do something
}
The isMain method returns TRUE this is is the main request and FALSE if its a subrequest.
if($this->request->isMain())
{
// Do something
}
The main method returns an instance of the main request.
$request = Request::main();
All routing configuration is done in the app/config/routes.php file.
'custom_routes' => array
(
'hello' => 'foo/bar',
),
If a user visits http://example.org/hello then the request will be routed to foo/bar and the bar action of the foo controller will be executed.
Routing can also be a good way of prettifying your URLs. This example shows how you can hide the index action from your users.
'custom_routes' => array
(
'product/([0-9]+)' => 'product/index/$1',
),
Visiting http://example.org/product/10 will now be the same as if a user went to http://example.org/product/index/10.
You can define as many custom routes as you want but note that they will be checked in the order that they are defined.
- Getting started: Installation
- Getting started: Configuration
- Getting started: Error handling
- Getting started: Constants
- Getting started: Coding standards
- Controllers: Controllers
- Controllers: Request
- Controllers: Response
- Databases: Basics
- Databases: Query builder
- Databases: Orm
- Databases: Migrations
- Command line: Basics
- Command line: Custom tasks
- Packages: Basics
- Packages: Composer packages
- Learn more: Array helper
- Learn more: Asset manager
- Learn more: Autoloading
- Learn more: Caching
- Learn more: Cookies
- Learn more: Events
- Learn more: File helper
- Learn more: Html helper
- Learn more: Internationalization
- Learn more: Logging
- Learn more: Number helper
- Learn more: Pagination
- Learn more: Redis client
- Learn more: Rest client
- Learn more: Security helpers
- Learn more: Sessions
- Learn more: String helper
- Learn more: Url helper
- Learn more: Uuid helper
- Learn more: Validation
- Learn more: Views