Connexion à la base de données de configuration du framework yii
Avant de commencer, assurez-vous d'avoir installé l'extension PHP PDO et votre Le pilote PDO de la base de données utilisée (par exemple, pdo_mysql de MySQL). Pour l'utilisation de bases de données relationnelles, il s'agit d'une exigence de base. (Apprentissage recommandé :
ouvrez le paramètre de configuration config/db.php dans la modification correspondant à la configuration de votre base de données. Le fichier contient ce contenu par défaut :
<?php return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=yii2basic', 'username' => 'root', 'password' => '', 'charset' => 'utf8', ];config/db.php est un outil de configuration typique basé sur un fichier. Ce fichier configure les paramètres de création et d'initialisation de la connexion à la base de données yiidbConnection. La requête SQL appliquée est basée sur cette base de données. La connexion à la base de données configurée ci-dessus est accessible dans l'application via l'expression Yii::$app->db.
信息: config/db.php 将被包含在应用配置文件 config/web.php 中, 后者指定了整个应用如何初始化。
Créer un enregistrement d'activité
Créer une classe Country qui hérite de la classe d'enregistrement d'activité et la mettre dans le fichier models/Country.php pour représenter et lire le pays données du tableau.<?php namespace app\models; use yii\db\ActiveRecord; class Country extends ActiveRecord { }Cette classe Country hérite de yiidbActiveRecord. Vous n'avez pas besoin d'y écrire de code. Tout comme maintenant, Yii peut deviner le nom de la table de données correspondante en fonction du nom de la classe.
信息: 如果类名和数据表名不能直接对应, 可以覆写 tableName() 方法去显式指定相关表名。Vous pouvez facilement manipuler les données de la table country à l'aide de la classe Country, comme ce code :
use app\models\Country; // 获取 country 表的所有行并以 name 排序 $countries = Country::find()->orderBy('name')->all(); // 获取主键为 “US” 的行 $country = Country::findOne('US'); // 输出 “United States” echo $country->name; // 修改 name 为 “U.S.A.” 并在数据库中保存更改 $country->name = 'U.S.A.'; $country->save();Information : les enregistrements actifs sont un moyen puissant et orienté objet d'accéder et de manipuler les données de la base de données. Vous pouvez en savoir plus dans le chapitre Journalisation des activités. De plus, vous pouvez également utiliser une autre méthode plus native appelée objet d'accès aux données pour manipuler les données de la base de données.
Créer une action
<?php namespace app\controllers; use yii\web\Controller; use yii\data\Pagination; use app\models\Country; class CountryController extends Controller { public function actionIndex() { $query = Country::find(); $pagination = new Pagination([ 'defaultPageSize' => 5, 'totalCount' => $query->count(), ]); $countries = $query->orderBy('name') ->offset($pagination->offset) ->limit($pagination->limit) ->all(); return $this->render('index', [ 'countries' => $countries, 'pagination' => $pagination, ]); } }Enregistrez le code ci-dessus dans le fichier contrôleurs/CountryController.php. L'opération index appelle la méthode d'enregistrement actif Country::find() pour générer une instruction de requête et récupérer toutes les données de la table country. Pour limiter le nombre de pays renvoyés par requête, la requête est paginée à l'aide d'objets yiidataPagination. L'objet Pagination a deux missions principales : Définir des clauses de décalage et de limite pour les instructions de requête SQL afin de garantir que chaque requête ne renvoie qu'une seule page de données (dans cet exemple, chaque page comporte 5 lignes). Affiche un paginateur composé d'une liste de numéros de page dans la vue, comme expliqué dans un paragraphe ultérieur. À la fin du code, l'opération d'indexation affiche une vue nommée index et y transmet les données du pays et les informations de pagination.
Créer une vue
Créez d'abord un sous-répertoire nommé country dans le répertoire des vues. Ce répertoire stocke toutes les vues rendues par le contrôleur de pays. Créez un fichier de vue nommé index.php dans le répertoire vues/pays avec le contenu suivant :<?php use yii\helpers\Html; use yii\widgets\LinkPager; ?> <h1>Countries</h1> <ul> <?php foreach ($countries as $country): ?> <li> <?= Html::encode("{$country->name} ({$country->code})") ?>: <?= $country->population ?> </li> <?php endforeach; ?> </ul> <?= LinkPager::widget(['pagination' => $pagination]) ?>Cette vue contient deux parties pour afficher les données du pays. La première partie parcourt les données du pays et les affiche sous la forme d'une liste HTML non ordonnée. La deuxième partie utilise yiiwidgetsLinkPager pour restituer les informations de pagination transmises par l'opération. Le widget LinkPager affiche une liste de boutons de pagination. En cliquant sur n’importe quel bouton, vous accéderez à la page correspondante.
Test
Visitez l'URL suivante dans votre navigateur pour voir si cela fonctionne :
http://hostname/index.php?r=country/index
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!