To create a basic route in Yii, first set up a controller by placing it in the controllers directory with proper naming and class definition extending yii\web\Controller. 1) Create an action within the controller by defining a public method starting with "action". 2) Configure URL structure by enabling pretty URLs through urlManager settings in config/web.php. 3) Define custom URL rules when necessary, such as mapping 'post/
To create a basic route in Yii, you need to set up a controller and an action, then configure the URL structure so that it maps correctly. The process is straightforward once you understand how Yii’s routing system works.
Setting Up the Controller
In Yii, controllers are responsible for handling requests and returning responses. To create a new controller, place it in the controllers
directory of your application or module. The file name should follow the naming convention: YourControllerName.php
.
For example, if you want to create a PostController
, the file would be named PostController.php
. Inside this file, define a class that extends yii\web\Controller
:
namespace app\controllers; use yii\web\Controller; class PostController extends Controller { public function actionIndex() { return $this->render('index'); } }
This creates a controller with one action called actionIndex()
. By default, each action corresponds to a method that starts with action
.
Creating the Action
The next step after creating the controller is defining the actions it will handle. An action is simply a public method inside the controller that starts with the word action
. For example, actionView()
or actionCreate()
.
Inside the action, you can perform logic like fetching data from a model, processing forms, or rendering views. Here's a slightly expanded version of the previous example:
public function actionView($id) { $post = Post::findOne($id); if (!$post) { throw new \yii\web\NotFoundHttpException(); } return $this->render('view', ['post' => $post]); }
In this case, the actionView()
expects an $id
parameter, which is automatically parsed from the request URL when using pretty URLs (more on that below).
Configuring the URL Format
By default, Yii uses a query-based URL format like /index.php?r=post/view&id=1
. But for cleaner and more SEO-friendly URLs, you'll want to enable pretty URLs.
To do this, update the urlManager
component in your configuration (config/web.php
):
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ 'post/<id:\d >' => 'post/view', 'posts' => 'post/index', ], ],
Also make sure your .htaccess
file is set up properly if you're using Apache, so that all requests get redirected to index.php
.
With these settings, visiting /posts
will run the index
action in the PostController
, and /post/5
will show the post with ID 5.
You don’t always have to define every rule manually — Yii has a default pattern where it assumes URLs like /controller-id/action-id
map directly to ControllerName::actionActionName()
. So /post/view?id=5
also works without any custom rules.
- Make sure controller files are in the correct folder
- Use
action
prefix for methods you want to expose as routes - Enable pretty URLs for cleaner paths
- Define custom URL rules only when needed
That’s basically all you need to create a basic route in Yii. It's not complicated, but there are a few moving parts like controller placement, action naming, and URL formatting that are easy to overlook.
The above is the detailed content of How do I create a basic route in Yii?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to implement API routing in the Slim framework Slim is a lightweight PHP micro-framework that provides a simple and flexible way to build web applications. One of the main features is the implementation of API routing, allowing us to map different requests to corresponding handlers. This article will introduce how to implement API routing in the Slim framework and provide some code examples. First, we need to install the Slim framework. The latest version of Slim can be installed through Composer. Open a terminal and

Apache Camel is an Enterprise Service Bus (ESB)-based integration framework that can easily integrate disparate applications, services, and data sources to automate complex business processes. ApacheCamel uses route-based configuration to easily define and manage integration processes. Key features of ApacheCamel include: Flexibility: ApacheCamel can be easily integrated with a variety of applications, services, and data sources. It supports multiple protocols, including HTTP, JMS, SOAP, FTP, etc. Efficiency: ApacheCamel is very efficient, it can handle a large number of messages. It uses an asynchronous messaging mechanism, which improves performance. Expandable

How to use routing to customize page switching animation effects in a Vue project? Introduction: In the Vue project, routing is one of the functions we often use. Switching between pages can be achieved through routing, providing a good user experience. In order to make page switching more vivid, we can achieve it by customizing animation effects. This article will introduce how to use routing to customize the page switching animation effect in the Vue project. Create a Vue project First, we need to create a Vue project. You can use VueCLI to quickly build

Implementation method and experience summary of flexible configuration of routing rules in PHP Introduction: In Web development, routing rules are a very important part, which determines the corresponding relationship between URL and specific PHP scripts. In the traditional development method, we usually configure various URL rules in the routing file, and then map the URL to the corresponding script path. However, as the complexity of the project increases and business requirements change, it will become very cumbersome and inflexible if each URL needs to be configured manually. So, how to implement in PHP

In modern web applications, implementing web page navigation and routing is a very important part. Using JavaScript functions to implement this function can make our web applications more flexible, scalable and user-friendly. This article will introduce how to use JavaScript functions to implement web page navigation and routing, and provide specific code examples. Implementing web page navigation For a web application, web page navigation is the most frequently operated part by users. When a user clicks on the page

Uniapp is a cross-end framework based on Vue.js. It supports one-time writing and generates multi-end applications such as H5, mini programs, and APPs at the same time. It pays great attention to performance and development efficiency during the development process. In Uniapp, the dynamic addition and deletion of routes is a problem that is often encountered during the development process. Therefore, this article will introduce the dynamic addition and deletion of routes in Uniapp and provide specific code examples. 1. Dynamic addition of routes Dynamic addition of routes can be done according to actual needs when the page is loaded or after user operation.

Tips for using route interceptors in uniapp In uniapp development, route interceptors are a very common function. Route interceptors allow us to perform some specific operations before routing jumps, such as permission verification, page passing parameters, etc. In this article, we will introduce the tips for using route interceptors in uniapp and provide specific code examples. Create a route interceptor First, we need to create a route interceptor in the uniapp project. The creation method is as follows: Create an inter in the project root directory

Vue is a popular front-end framework that provides an elegant way to build user interfaces. Vue routing is an important feature in the Vue framework. It allows us to jump and navigate between pages by changing the URL in a single-page application. In addition to this basic function, Vue routing can also be used to dynamically display and hide page elements. This article will introduce how to use Vue routing to achieve this function. First, we need to install Vue routing. It can be installed using the npm command: npminstall
