请求最终到达的还是action,yii2 中的 action 有两种形式:
- 控制器中的action
- 独立的action
控制器中的action
需要以action为前缀,如 actionIndex
<?phpclass SiteController extends Controller{public function actionHome(){return $this->render('home');}}
独立action
在 service 文件夹下新建 actions 目录,而后新建一个 DemoAction.php
<?phpnamespace service\actions;use yii\base\Action;class DemoAction extends Action{// 入口public function run (){// 调用当前控制器return $this->controller->render('index');}}
在 controller 中使用 action
<?phpclass SiteController extends Controller{public function actions(){return [// 可以用 site/demo访问'demo' => 'service\actions\DemoAction'];}}
独立action,常用于前后端有一样功能的时候,通过 APP_ID 做区别,就可以使得前后端公用一个 action
默认action
yii2 中 一个控制器的默认 action 为 index,修改此设置为 home
<?phpclass SiteController extends Controller{public $defaultAction = 'home';public function actionHome(){return $this->render('home');}}
