ホームページ  >  記事  >  php教程  >  Yii2.0 はデータベースを使用します

Yii2.0 はデータベースを使用します

伊谢尔伦
伊谢尔伦オリジナル
2016-11-25 14:34:021056ブラウズ

データベースを準備します:

新しいデータベース yii2basic を作成し、その中にテーブルを作成します:

CREATE TABLE `country` (
    `code` CHAR(2) NOT NULL PRIMARY KEY,
    `name` CHAR(52) NOT NULL,
    `population` INT(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `country` VALUES ('AU','Australia',18886000);
INSERT INTO `country` VALUES ('BR','Brazil',170115000);
INSERT INTO `country` VALUES ('CA','Canada',1147000);
INSERT INTO `country` VALUES ('CN','China',1277558000);
INSERT INTO `country` VALUES ('DE','Germany',82164700);
INSERT INTO `country` VALUES ('FR','France',59225700);
INSERT INTO `country` VALUES ('GB','United Kingdom',59623400);
INSERT INTO `country` VALUES ('IN','India',1013662000);
INSERT INTO `country` VALUES ('RU','Russia',146934000);
INSERT INTO `country` VALUES ('US','United States',278357000);

データベース接続を設定します:

config/db.php 内:

<?php
return [
    &#39;class&#39; => &#39;yii\db\Connection&#39;,
    &#39;dsn&#39; => &#39;mysql:host=localhost;dbname=yii2basic&#39;,
    &#39;username&#39; => &#39;root&#39;,
    &#39;password&#39; => &#39;&#39;,
    &#39;charset&#39; => &#39;utf8&#39;,
];

ActiveRecord を作成します:

models/ Country php:

<?php
    namespace app\models;
    use yii\db\ActiveRecord;
    class Country extends ActiveRecord
    {
    }

アクションを作成します:

controllers/ CountryController.php:

<?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([
                &#39;defaultPageSize&#39; => 5,
                &#39;totalCount&#39; => $query->count(),
            ]);
        $countries = $query->orderBy(&#39;name&#39;)
            ->offset($pagination->offset)
            ->limit($pagination->limit)
            ->all();
        return $this->render(&#39;index&#39;, [
            &#39;countries&#39; => $countries,
            &#39;pagination&#39; => $pagination,
        ]);
    }
}

ビューを作成します

view/country/index.php:

<?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([&#39;pagination&#39; => $pagination]) ?>

試してみましょう:

http://hostname/index.php?r=country/index

Yii2.0 はデータベースを使用します


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。