Yii - Utwórz stronę
Teraz utworzymy plik “Hello world”w swojej aplikacji. Aby stworzyć stronę, musimy stworzyć akcję i widok.
Akcje są deklarowane w kontrolerach. Użytkownik końcowy otrzyma wynik wykonania akcji.
Step 1 - Zadeklaruj działanie mowy w istniejącym SiteController, który jest zdefiniowany w klasie kontrolerów plików /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]);
}
}
?>
Zdefiniowaliśmy akcję speak jako metodę o nazwie actionSpeak. W Yii wszystkie metody akcji są poprzedzone słowem akcja. W ten sposób ramy rozróżniają metody akcji od metod niedziałających. Jeśli identyfikator akcji wymaga wielu słów, zostaną one połączone myślnikami. Stąd add-post ID akcji odpowiada metodzie akcjiactionAddPost.
W podanym powyżej kodzie ‘out’ funkcja przyjmuje parametr GET, $message. Wzywamy również metodę o nazwie‘render’renderować plik widoku o nazwie speak. Przekazujemy parametr wiadomości do widoku. Wynikiem renderowania jest pełna strona HTML.
Viewto skrypt, który generuje treść odpowiedzi. Dla akcji speak tworzymy widok speak, który drukuje naszą wiadomość. Kiedy wywoływana jest metoda render, szuka plików PHP o nazwachview/controllerID/vewName.php.
Step 2 - Dlatego w folderze views / site utwórz plik o nazwie speak.php z następującym kodem.
<?php
use yii\helpers\Html;
?>
<?php echo Html::encode($message); ?>
Zauważ, że przed drukowaniem kodujemy parametr wiadomości w formacie HTML, aby tego uniknąć XSS atak.
Step 3 - Wpisz następujące informacje w przeglądarce internetowej http://localhost:8080/index.php?r=site/speak&message=hello%20world.
Zobaczysz następujące okno -
Plik ‘r’parametr w adresie URL oznacza trasę. Domyślny format trasy tocontrollerID/actionID. W naszym przypadku trasa / mowa zostanie rozwiązana przezSiteController klasa i przemówienie.