亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用yii框架創建hello頁面的方法

發布時間:2021-01-08 16:11:06 來源:億速云 閱讀:197 作者:小新 欄目:編程語言

小編給大家分享一下使用yii框架創建hello頁面的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

本章描述了如何在你的應用中創建一個新的 “Hello” 頁面。為了實現這一目標, 將會創建一個操作 和一個視圖:

應用將會分派頁面請求給動作    

動作將會依次渲染視圖呈現 “Hello” 給最終用戶

貫穿整個章節,你將會掌握三件事:

如何創建一個動作去響應請求,

如何創建一個視圖去構造響應內容,

以及一個應用如何分派請求給動作。

創建動作

為了 “Hello”,需要創建一個 say 操作, 從請求中接收 message 參數并顯示給最終用戶。 如果請求沒有提供 message 參數,操作將顯示默認參數 “Hello”。

信息: 操作是最終用戶可以直接訪問并執行的對象。 操作被組織在控制器中。 一個操作的執行結果就是最終用戶收到的響應內容。

操作必須聲明在控制器中。為了簡單起見, 你可以直接在 SiteController 控制器里聲明 say 操作。 這個控制器是由文件 controllers/SiteController.php 定義的。以下是一個操作的聲明:

<?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 參數。

<?php
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

使用yii框架創建hello頁面的方法

這個 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頁面的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐源县| 新邵县| 历史| 龙山县| 安丘市| 玉屏| 华安县| 枞阳县| 普洱| 罗源县| 安平县| 襄城县| 新疆| 南投市| 靖宇县| 沾益县| 威宁| 海晏县| 葵青区| 壶关县| 车险| 和田市| 大洼县| 阜宁县| 木兰县| 洛阳市| 云林县| 黔西县| 内江市| 罗源县| 阿巴嘎旗| 扎兰屯市| 外汇| 筠连县| 南溪县| 白山市| 浪卡子县| 小金县| 贺州市| 岢岚县| 连城县|