本文概述
- 创造行动
- 动作ID
- 内联动作
- 独立动作
- 动作返回值
- 动作参数
- 默认动作
创造行动 通过定义名称以action开头的公共方法来创建操作。
例:
步骤1我们将在SampleController.php文件中创建一个名为index2的操作。
<
?php namespace frontend\controllers;
use Yii;
use yii\web\Controller;
class SampleController extends Controller { public function actionIndex() { return $this->
render('index');
} public function actionIndex2() { return "<
h1>
This action is Index2<
/h2>
";
} } ?>
步骤2在浏览器上运行它。
http://localhost/action/frontend/web/index.php?r = sample / index2
文章图片
动作ID 创建动作来执行特定请求, 因此通常将其命名为动词, 例如创建, 查看, 更新, 删除等。
动作ID只能包含以下字母:
- 小写英文字母
- 下划线
- 连字号
- 英文字母后的数字, 例如上例中的index2。
- 内联动作
- 独立动作
内联操作ID名称是根据以下几点定义的:
- 以操作前缀开始方法名称。
- 操作后单词的首字母将大写。
- 删除连字符。
- 索引2成为actionIndex2
- 登录表单变为actionLoginForm
可以将它们定义为单独的类, 然后将它们连接到控制器。这样, 他们将能够重用。
这些动作必须实现一个名为run()的方法, 并扩展到yii \ base \ Action或子类。
例子
我们将演示独立动作的简单用法。
步骤1在Yii2文件夹的前端目录中创建一个文件夹。
步骤2现在在上面创建的文件夹中创建MultiAction.php文件。
<
?php namespace frontend\standing;
use yii\base\Action;
class MultiAction extends Action { public function run() { return "<
h3>
This is StandAlone action example<
/h3>
";
} } ?>
看上面的代码, 我们创建了一个名为MultiAction的独立动作, 该动作扩展到Action类。已经实现了run()方法。
步骤3在上面创建的SampleController.php文件中, 添加一些额外的代码。
<
?php namespace frontend\controllers;
use Yii;
use yii\web\Controller;
class SampleController extends Controller { public function actionIndex() { return $this->
render('index');
} public function actions(){ return [ 'multi' =>
'frontend\standing\MultiAction', ];
} public function actionIndex2() { return "<
h1>
This action is Index2<
/h2>
";
} } ?>
看上面的代码, actions()方法返回独立动作, 它是在常设文件夹中创建的多动作。
步骤4在带有URL的浏览器中运行它,
http://localhost/action/frontend/web/index.php?r = sample / multi
文章图片
动作返回值 一个动作的返回值代表相应动作的结果。
以下示例显示了通过返回响应对象将操作重定向到新URL的操作。 redirect()方法始终返回一个响应对象。
步骤1在SampleController.php文件中添加以下代码。
public function actionMysite() { // redirect the user browser to http://example.com return $this->
redirect('http://srcmini.com');
}
步骤2在浏览器中使用以下URL运行它,
http://localhost/action/frontend/web/index.php?r = sample / mysite
上面的URL将使srcmini.com站点出现在你的面前。
动作参数 你还可以将参数添加到操作方法。它们的值将使用参数名作为键从$ _GET方法中检索。
步骤1在SampleController.php文件中添加以下代码。
public function actionPara($a, $b) { return "$a $b";
}
步骤2在浏览器中使用以下URL运行它,
http://localhost/action/frontend/web/index.php?r = sample / para&a =欢迎来到&b =我们的网站
文章图片
在上述网址中, 如果你不向a和b变量提供任何值, 则将引发异常错误。
默认动作 始终在每个控制器文件中指定默认操作。默认情况下, 它设置为索引。
在路由中时, URL仅包含控制器ID, 然后转到默认操作index。但是, 可以通过覆盖默认值来更改它。
命名空间app \ controllers;
使用yii \ web \ Controller;
class SiteController extends Controller{public $defaultAction = 'main_page';
public function actionHome(){return $this->
render('main_page');
}}
【YII控制器动作介绍和用法示例】下载此示例
推荐阅读
- YII创建数据库用法示例
- YII cookie介绍和用法示例
- YII控制器介绍和用法示例
- Yii CRUD数据库操作实例图解
- Linux安装YII详细步骤图解(最全面)
- Yii2快速安装简要步骤
- YII教程入门介绍
- Yii项目结构详细解释
- 使用Charles对Android App的https请求进行抓包