本章形貌了如安在你的运用中建立一个新的 “Hello” 页面。为了完成这一目的, 将会建立一个操纵 和一个视图:
运用将会分配页面要求给行动 ( 引荐进修:yii教程)
行动将会顺次衬着视图显现 “Hello” 给最终用户
贯串全部章节,你将会控制三件事:
怎样建立一个行动去响应要求,
怎样建立一个视图去构造响应内容,
以及一个运用怎样分配要求给行动。
建立行动
为了 “Hello”,须要建立一个 say 操纵, 从要求中吸收 message 参数并显现给最终用户。 假如要求没有供应 message 参数,操纵将显现默许参数 “Hello”。
信息: 操纵是最终用户能够直接接见并实行的对象。 操纵被构造在控制器中。 一个操纵的实行效果就是最终用户收到的响应内容。
操纵必需声明在控制器中。为了简朴起见, 你能够直接在 SiteController 控制器里声明 say 操纵。 这个控制器是由文件 controllers/SiteController.php 定义的。以下是一个操纵的声明:
namespace app\controllers;
use yii\web\Controller;
class SiteController extends Controller
{
// ...现存的代码...
public function actionSay($message = 'Hello')
{
return $this->render('say', ['message' => $message]);
}
}
在上述 SiteController 代码中,say 操纵被定义为 actionSay 要领。 Yii 运用 action 前缀辨别一般要领和操纵。 action 前缀背面的称号被映照为操纵的 ID。
涉及到给操纵定名时,你应当明白 Yii 怎样处置惩罚操纵 ID。 操纵 ID 老是被以小写处置惩罚,假如一个操纵 ID 由多个单词构成, 单词之间将由连字符衔接(如 create-comment)。
操纵 ID 映照为要领名时移除了连字符,将每一个单词首字母大写,并加上 action 前缀。 例子:操纵 ID create-comment 相当于要领名 actionCreateComment。
上述代码中的操纵要领接收一个参数 $message, 它的默许值是 “Hello”(就像你设置 PHP 中别的函数或要领的默许值一样)。 当运用吸收到要求并肯定由 say 操纵来响应要求时,运用将从要求的参数中寻觅对应值传入进来。
换句话说,假如要求包括一个 message 参数, 它的值是 “Goodbye”, 操纵要领中的 $message 变量也将被添补为 “Goodbye”。
在操纵要领中,render() 被用来衬着一个 名为 say 的视图文件。 message 参数也被传入视图,如许就能够在里面运用。操纵要领会返回衬着效果。 效果会被运用吸收并显现给最终用户的浏览器(作为整页 HTML 的一部分)。
建立视图
视图是你用来生成响应内容的剧本。为了说 “Hello”, 你须要建立一个 say 视图,以便显现从操纵要领中传来的 message 参数。
use yii\helpers\Html;
?>
= Html::encode($message) ?>
say 视图应当存为 views/site/say.php 文件。当一个操纵中挪用了 render() 要领时, 它将会按 views/控制器 ID/视图名.php 途径加载 PHP 文件。
注重以上代码,message 参数在输出之前被 HTML-encoded 要领处置惩罚过。 这很有必要,当参数来自于最终用户时,参数中能够隐含的歹意 JavaScript 代码会致使 跨站剧本(XSS)进击。
固然了,你也许会在 say 视图里放入更多内容。内容能够由 HTML 标签,纯文本, 以至 PHP 语句构成。实际上 say 视图就是一个由 render() 实行的 PHP 剧本。 视图剧本输出的内容将会作为响应效果返回给运用。运用将顺次输出效果给最终用户。
试运行
建立完行动和视图后,你就能够经由过程下面的 URL 接见新页面了:
http://hostname/index.php?r=site/say&message=Hello+World
这个 URL 将会输出包括 “Hello World” 的页面,页面和运用里的别的页面运用一样的头部和尾部。
假如你省略 URL 中的 message 参数,将会看到页面只显现 “Hello”。 这是由于 message 被作为一个参数传给 actionSay() 要领,当省略它时,参数将运用默许的 “Hello” 替代。
信息: 新页面和别的页面运用一样的头部和尾部是由于 render() 要领会自动把 say 视图实行的效果嵌入称为规划的文件中, 本例中是 views/layouts/main.php。
上面 URL 中的参数 r 须要更多诠释。 它代表路由,是全部运用级的, 指向特定操纵的自力 ID。路由花样是 控制器 ID/操纵 ID。运用接收要求的时刻会搜检参数, 运用控制器 ID 去肯定哪一个控制器应当被用来处置惩罚要求。 然后响应控制器将运用操纵 ID 去肯定哪一个操纵要领将被用来做具体工作。
上述例子中,路由 site/say 将被剖析至 SiteController 控制器和个中的 say 操纵。 因而 SiteController::actionSay() 要领将被挪用处置惩罚要求。
信息: 与操纵一样,一个运用中控制器一样有唯一的 ID。 控制器 ID 和操纵 ID 运用一样的定名划定规矩。 控制器的类名源自于控制器 ID, 移除了连字符,每一个单词首字母大写,并加上 Controller 后缀。 例子:控制器 ID post-comment 相当于控制器类名 PostCommentController
以上就是怎样运用yii框架建立hello页面的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0