第1步 - 声明一个动作 speak 在现有 SiteController, 它这是在类文件 controllers/SiteController.php 中定义的。
<?php namespace app\controllers; use Yii; use yii\filters\AccessControl; use yii\web\Controller; use yii\filters\VerbFilter; use app\models\LoginForm; use app\models\ContactForm; class SiteController extends Controller { /* other code */ public function actionSpeak($message = "default message") { return $this->render("speak",['message' => $message]); } } ?>
我们定义的 speak 动作作为一个名为 actionSpeak 方法。在Yii中,所有操作方法的前缀词是action。这是框架用于区别非动作的操作方法。如果动作ID需要多个词语,那么他们将被由破折号连接。因此,动作ID为add-pos对应的操作方法是AddPost。
在上面的代码中,函数接受一个GET参数 - $message。也是调用了一个名为“render”方法来渲染一个视图文件。我们通过 message 参数到视图。渲染结果是一个完整的HTML页面。
视图是生成响应内容的脚本。对于 speak 动作,我们创建打印消息的 speak 视图。当 render 方法被调用时,它会查找一个名称为: view/controllerID/vewName.php 的PHP文件。
<?php use yii\helpers\Html; ?> <?php echo Html::encode($message); ?>
第3步 - 在Web浏览器中键入以下:http://localhost:8080/index.php?r=site/speak&message=hello%20world

URL中的“r”参数表示路由。路由默认格式为:controllerID/actionID。在我们的例子中,路由 site/speak 将被解析为 SiteController类和 speak 动作。
出错处理:
解决:
打开文件:config/web.php,找到 'cookieValidationKey' => '', (大概在第12行),随便写上一个值,这里我随便修改为:
'cookieValidationKey' => 'xuhuhu.com', 就可以了。