«

Juil 20

Yii2-Créer votre 1ère page avec le framework Yii 2 (2ème partie)

Dans le premier article, nous avons, à partir d’une archive, mis en oeuvre notre site. Il nous aura fallu moins de 15 minutes pour avoir le squelette d’un site Web opérationnel.

Dans cette deuxième et dernière partie, nous allons créer une action ainsi que la page qui s’y rapporte.

Ajout d’une action dans le contrôleur

Dans le modèle par défaut, le contrôleur par défaut est « SiteController.php ». Celui-ci est dans le dossier « controllers ».

Ci-dessous le code du contrôleur

 
<?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
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['logout'],
                'rules' => [
                    [
                        'actions' => ['logout'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],
                ],
            ],
        ];
    }
 
    public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            ],
        ];
    }
 
    public function actionIndex()
    {
        return $this->render('index');
    }
 
    public function actionLogin()
    {
        if (!\Yii::$app->user->isGuest) {
            return $this->goHome();
        }
 
        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->login()) {
            return $this->goBack();
        }
        return $this->render('login', [
            'model' => $model,
        ]);
    }
 
    public function actionLogout()
    {
        Yii::$app->user->logout();
 
        return $this->goHome();
    }
 
    public function actionContact()
    {
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
            Yii::$app->session->setFlash('contactFormSubmitted');
 
            return $this->refresh();
        }
        return $this->render('contact', [
            'model' => $model,
        ]);
    }
 
    public function actionAbout()
    {
        return $this->render('about');
    }
}
?>

Ajoutons maintenant l’action « helloworld ».

Il est possible d’afficher le texte « Hello World ! » de deux façons :

1ère possibilité :

public function actionHelloworld()
{
    return "Hello World!";
}

Le texte est ici directement affiché dans la page. C’est ce qu’il y a de plus simple. Cependant, cette façon de faire reste basic.
Pour afficher la page,
http://localhost/basic/index.php?site/helloworld

hello world_basic

Pour afficher une page (pour être dans un modèle MVC), nous allons maintenant créer une page

2ème possibilité

Une vue est stockée dans le dossier « views ». Les vues d’un contrôleur, dans notre cas SiteController, sont stockées dans le sous-dossier du même nom que le contrôleur à savoir « site ».

Créons un fichier « helloworld.php » dans le dossier « /views/site/ ».

<?php
 
/* @var $this yii\web\View */
 
use yii\helpers\Html;
 
$this->title = 'Hello World';
$this->params['breadcrumbs'][] = $this->title;
?>
Hello world !

Pour appeler la page nouvellement créée, nous allons modifier le contrôleur « SiteController ».

public function actionHelloworld()
{
	return $this->render('helloworld');
}

La page affichée devient :
hello world_render

Votre page est automatiquement intégrée dans le layout.

Nous avons vu dans ces deux courts articles que la mise en oeuvre d’un site web avec Yii est un jeu d’enfant.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser les balises HTML suivantes : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>