Controllers ActionActions are defined in the controllers file. They need to be called while executing a request in an application through the URL. Creating ActionAn action is created by defining a public method whose name starts with the word action. Example: Step 1 We'll create an action named index2 in the SampleController.php file. Step 2 Run it on the browser. http://localhost/action/frontend/web/index.php?r=sample/index2 Action IDsAn action is created to perform a particular request, and hence it is generally named as verbs like create, view, update, delete, etc. An action ID can contain only these letters:
Actions can be created in two ways:
Inline ActionInline action is a method in the controller class. These are the most commonly created actions when they don't need to be used more than once and are easy to create. Inline action ID name is defined according to the following points:
For example,
Standalone ActionA standalone action extends yii\base\Action or its child classes. These actions are mainly created when they need to be used in different controllers or redistributes as extensions. They can be defined as separate classes and then connect them to your controllers. This way they will be able to reuse. These actions must implement a method called run() and extend to yii\base\Action or a child class. Example We'll demonstrate a simple use of standalone action. Step 1 Create a folder standing in the frontend directory of your Yii2 folder. Step 2 Now create a MultiAction.php file in above created folder. Look at the above code, we have created a standalone action named as MultiAction which extends to Action class. The have implemented the run() method. Step 3 In the above created SampleController.php file add some extra codes. Look at the above code, actions() method returns the standalone action which is multi action created in the standing folder. Step 4 Run it on the browser with the URL, http://localhost/action/frontend/web/index.php?r=sample/multi Action Return ValueReturn value of an action stands for the result of the corresponding action. The following example shows an action being redirected to a new URL by returning a response object. The redirect() method always returns a response object. Step1 Add the following code in the SampleController.php file. Step 2 Run it on the browser with the following URL, http://localhost/action/frontend/web/index.php?r=sample/mysite The above URL will result the javatpoint.com site in front of you. Action ParametersYou can also add parameters to the action methods. Their values will be retrieved from the $_GET method using parameter name as key. Step 1 Add the following code in the SampleController.php file. Step 2 Run it on the browser with the following URL, http://localhost/action/frontend/web/index.php?r=sample/para&a=Welcome to&b=our site In the above URL, if you'll not provide any value to a and b variables, exception error will be thrown. Default ActionA default action is always specified in every controllers file. By default, it is set as index. When in the route, URL only contains controller ID, then it goes to default action that is index. However this default value can be changed by overriding it. namespace app\controllers; use yii\web\Controller; Next TopicYII Modules |