YII2框架中actions的作用与使用方法示例

本文实例讲述了YII2框架中actions的作用与使用方法。分享给大家供大家参考,具体如下:

我们常在控制器中看到一个actions的方法,这个方法具体的作用是共用一些功能相同的action,方便调用。

当然我们也可以自已写一些action来进行调用。在项目目录下创建common目录,并创建TestAction.php文件。action文件的存放路径可以随意指定。

<?php

//注意这里的命名空间,要跟你的目录对应
namespace app\common;

use yii\base\Action;

//我们需要继承yii\base\Action类
class TestAction extends Action {

  //这里面的三个参数的值是通过控制器actions中配置而来的
  public $param1 = null;
  public $param2 = null;
  public $param3 = null;

  //实现run方法
  public function run() {
    echo "test run param1: {$this->param1} param2: {$this->param2} param3: {$this->param3}";
  }
}

控制器代码如下:

<?php

namespace app\controllers;

use YII;
use yii\web\Controller;

class IndexController extends Controller
{
  //actions的作用主要是共用功能相同的方法
  public function actions()
  {
    return [
      'test' => [
        'class' => 'app\common\TestAction',
        'param1' => 'hello',
        'param2' => 'world',
        'param3' => '!!!',
      ],
    ];
  }
}

这样我们在地址栏就可以通过/index/test来访问调用了。

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

(0)

相关推荐

  • YII2框架中分页组件的使用方法示例

    本文实例讲述了YII2框架中分页组件的使用方法.分享给大家供大家参考,具体如下: 当数据过多,无法一页显示时,我们经常会用到分页组件,YII2中已经帮我们封装好了分页组件. 首先我们创建操作数据表的AR模型: <?php namespace app\models; use yii\db\ActiveRecord; class MyUser extends ActiveRecord { public static function tableName() { return '{{%user}}';

  • yii2.0框架场景的简单使用示例

    本文实例讲述了yii2.0框架场景的简单使用.分享给大家供大家参考,具体如下: 一.规则中使用场景 规则场景的使用 模型层 public function rules() { return [ [['name','product_id'],'required','on'=>'add], ]; } 表示只在add场景下改规则才生效. 在控制器中指定场景: $model->scenario = "add"; 或者 $model = new User(['scenario' =&

  • YII2框架中操作数据库的方式实例分析

    本文实例讲述了YII2框架中操作数据库的方式.分享给大家供大家参考,具体如下: 一.以createCommand方式: // YII2中通过createCommand来处理数据库 // 查询多条记录 // {{%user}} 表示如果设置了表前缀,YII会自动帮你替换 $data1 = YII::$app->db->createCommand('select * from {{%user}}')->queryAll(); // 查询一条记录 // createCommand的第二个参数可

  • yii2.0框架使用 beforeAction 防非法登陆的方法分析

    本文实例讲述了yii2.0框架使用 beforeAction 防非法登陆的方法.分享给大家供大家参考,具体如下: beforeAction基本原理: 对比 1.执行顺序 init > beforeAction 2.调用子函数时,两个函数都不会再次执行 3.返回值 init返回false继续执行,beforeAction停止执行 4.执行EXIT,全部停止 从框架的示例代码来看,init用于初始化数据,beforeAction用户事件的处理 代码 // 登录统一验证 public function

  • Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等

    使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型).Controller(控制器).Action(方法),以及会调用控制器里面已经定义过的一些公共的方法等.对于这些问题Yii2可以在视图层View中使用$this->context这个对象去获得. 示例:譬如现在(视图层登陆界面)login.php方法下面: <?php //得到Yii2的当前的控制器Controller echo $this->context->id; //输出结果:site /

  • YII2框架中自定义用户认证模型,完成登陆和注册操作示例

    本文实例讲述了YII2框架中自定义用户认证模型,完成登陆和注册操作.分享给大家供大家参考,具体如下: 有些时候我们需要自已定义用户类,操作自已建的用户表,来完成登陆和注册功能. 用户表结构如下,当然可以根据自已的需要添加或删除: CREATE TABLE `tb_user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', `name` varchar(32) DEFAULT '' COMMENT '用户名', `pw

  • yii框架配置默认controller和action示例

    设置默认controller 在/protected/config/main.php添加配置 复制代码 代码如下: <?phpreturn array( 'name'=>'Auto','defaultController'=>'auto', 上述配置了默认的controller为AutoController.php 设置默认action 在AutoController.php中设置 复制代码 代码如下: class AutoController extends CController{ 

  • YII2框架实现表单中上传单个文件的方法示例

    本文实例讲述了YII2框架实现表单中上传单个文件的方法.分享给大家供大家参考,具体如下: 有些时候我们提交的表单中含有文件.怎么样让表单里的数据和文件一起提交. 我的数据表tb_user内容如下: CREATE TABLE `tb_user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', `name` varchar(32) DEFAULT '' COMMENT '用户名', `pwd` varchar(64) D

  • YII2框架自定义全局函数的实现方法小结

    本文实例讲述了YII2框架自定义全局函数的方法.分享给大家供大家参考,具体如下: 有些时候我们需要自定义一些全局函数来完成我们的工作. 方法一: 直接写在入口文件处 <?php // comment out the following two lines when deployed to production defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'de

  • YII2框架中验证码的简单使用方法示例

    本文实例讲述了YII2框架中验证码的简单使用方法.分享给大家供大家参考,具体如下: 验证码的使用是比较频繁的.YII2中已经帮我们做好了封装. 首先我们在控制器里创建一个actions方法,用于使用yii\captcha\CaptchaAction <?php namespace app\controllers; use YII; use yii\web\Controller; class IndexController extends Controller { public function

  • Yii框架获取当前controlle和action对应id的方法

    本文实例讲述了Yii框架获取当前controlle和action对应id的方法.分享给大家供大家参考.具体方法如下: 在Yiii框架开发中,你可能会要获取当前controlle或action的id,其实很简单,一句代码就实现了,以下是分别在controlle(控制器)和View(视图)中获取当前id的代码. 在控制器里: 复制代码 代码如下: $name = $this->getId();  // controller $name = $action->id;  // action 在视图里:

随机推荐