検索
ホームページPHPフレームワークYIIyii フレームワークをデータベースに接続する方法

yii フレームワークをデータベースに接続する方法

yii フレームワーク構成データベース接続

始める前に、PHP PDO 拡張機能がインストールされていることを確認してください。 your 使用するデータベースの PDO ドライバー (MySQL の pdo_mysql など)。リレーショナル データベースを使用する場合、これが基本要件です。 (推奨される学習: yii フレームワーク)

ドライバーと拡張機能がインストールされて使用可能になったら、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;,
];

config/db.php は、典型的なファイルベースの構成ツールです。このファイルは、データベース接続 yii\db\Connection の作成および初期化パラメータを構成し、適用される SQL クエリはこのデータベースに基づいています。

上で設定したデータベース接続には、Yii::$app->db 式を介してアプリケーションでアクセスできます。

信息: config/db.php 将被包含在应用配置文件 config/web.php 中, 后者指定了整个应用如何初始化。

アクティブ レコードの作成

アクティブ レコード クラスから継承するクラス Country を作成し、それを models/ Country.php ファイルに配置して国を表し、読み取ることができます。テーブルデータ。

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

この Country クラスは yii\db\ActiveRecord から継承します。コードを記述する必要はありません。現在と同様に、Yii はクラス名に基づいて対応するデータテーブル名を推測できます。

信息: 如果类名和数据表名不能直接对应, 可以覆写 tableName() 方法去显式指定相关表名。

次のコードのように、 Country クラスを使用して国テーブル データを簡単に操作できます。

use app\models\Country;
// 获取 country 表的所有行并以 name 排序
$countries = Country::find()->orderBy(&#39;name&#39;)->all();
// 获取主键为 “US” 的行
$country = Country::findOne(&#39;US&#39;);
// 输出 “United States”
echo $country->name;
// 修改 name 为 “U.S.A.” 并在数据库中保存更改
$country->name = &#39;U.S.A.&#39;;
$country->save();

情報: Active Record は、データベース データにアクセスして操作するためのオブジェクト指向の強力な方法です。詳細については、「アクティビティ ログ」の章をご覧ください。さらに、データ アクセス オブジェクトと呼ばれる別のよりネイティブなメソッドを使用して、データベース データを操作することもできます。

アクションの作成

エンド ユーザーに国データを表示するには、アクションを作成する必要があります。前のセクションでマスターしたサイト コントローラーでの作成操作と比較して、ここですべての国関連データに対して新しいコントローラーを作成する方が合理的です。新しいコントローラーに CountryController という名前を付け、次のようにその中にインデックス アクションを作成します。

<?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,
        ]);
    }
}

上記のコードをcontrollers/ CountryController.php ファイルに保存します。

index オペレーションは、アクティブ レコード Country::find() メソッドを呼び出してクエリ ステートメントを生成し、country テーブルからすべてのデータを取得します。リクエストごとに返される国の数を制限するために、クエリは yii\data\Pagination オブジェクトを使用してページ分割されます。 Pagination オブジェクトには 2 つの主要な使命があります。

SQL クエリ ステートメントの offset 句とlimit 句を設定して、各リクエストが 1 ページのデータのみを返すようにします (この例では、各ページは 5 行です)。

ページ番号のリストで構成されるページネータをビューに表示します。これについては次の段落で説明します。

コードの最後で、インデックス操作によってインデックスという名前のビューがレンダリングされ、そこに国データとページング情報が渡されます。

ビューの作成

まず、views ディレクトリに country という名前のサブディレクトリを作成します。このディレクトリには、カントリー コントローラーによってレンダリングされたすべてのビューが保存されます。次の内容を含む、index.php という名前のビュー ファイルを views/country ディレクトリに作成します。

<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;
?>
<h1 id="Countries">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]) ?>

このビューには、国データを表示する 2 つの部分が含まれています。最初の部分は国データをループし、順序なしの HTML リストとしてレンダリングします。 2 番目の部分では、yii\widgets\LinkPager を使用して、オペレーションから渡されたページング情報をレンダリングします。ウィジェット LinkPager には、ページング ボタンのリストが表示されます。いずれかのボタンをクリックすると、対応するページにジャンプします。

#試用実行

# ブラウザで次の URL にアクセスして、動作するかどうかを確認してください:

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

以上がyii フレームワークをデータベースに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
誇大広告を超えて:今日のYiiの役割を評価します誇大広告を超えて:今日のYiiの役割を評価しますApr 25, 2025 am 12:27 AM

Yiiは開発者にとって強力な選択肢です。 1)YIIは、MVCアーキテクチャに基づいた高性能PHPフレームワークであり、ActiverCord、GII、Cache Systemsなどのツールを提供します。 2)その利点には効率と柔軟性が含まれますが、学習曲線は急で、コミュニティのサポートは比較的限られています。 3)高性能と柔軟性を必要とするプロジェクトに適していますが、チームのテクノロジースタックと学習コストを考慮してください。

Yii in Action:現在のアプリケーションとプロジェクトYii in Action:現在のアプリケーションとプロジェクトApr 24, 2025 am 12:03 AM

YIIフレームワークは、エンタープライズレベルのアプリケーション、中小規模のプロジェクト、個々のプロジェクトに適しています。 1)エンタープライズレベルのアプリケーションでは、YIIの高性能とスケーラビリティにより、eコマースプラットフォームなどの大規模なプロジェクトでは傑出しています。 2)中小規模のプロジェクトでは、YIIのGIIツールがプロトタイプとMVPを迅速に構築するのに役立ちます。 3)個人およびオープンソースのプロジェクトでは、Yiiの軽量機能により、小さなWebサイトやブログに適しています。

YIIの使用:堅牢でスケーラブルなWebソリューションの作成YIIの使用:堅牢でスケーラブルなWebソリューションの作成Apr 23, 2025 am 12:16 AM

YIIフレームワークは、効率的で安全でスケーラブルなWebアプリケーションを構築するのに適しています。 1)YIIはMVCアーキテクチャに基づいており、コンポーネントの設計とセキュリティ機能を提供します。 2)基本的なCRUD操作と高度なRestfulapi開発をサポートします。 3)ロギングやデバッグツールバーなどのデバッグスキルを提供します。 4)パフォーマンスの最適化には、キャッシュと怠zyなロードを使用することをお勧めします。

Yiiの目的:Webアプリケーションを迅速かつ効率的に構築しますYiiの目的:Webアプリケーションを迅速かつ効率的に構築しますApr 22, 2025 am 12:07 AM

Yiiの目的は、開発者がWebアプリケーションを迅速かつ効率的に構築できるようにすることです。その実装は、次の方法を通じて実装されます。1)コンポーネントベースの設計とMVCアーキテクチャは、コードの保守性と再利用性を向上させます。 2)GIIツールは、開発速度を改善するためのコードを自動的に生成します。 3)怠zyな負荷とキャッシュメカニズムの最適化パフォーマンス。 4)サードパーティライブラリの統合を容易にする柔軟なスケーラビリティ。 5)複雑なビジネスロジックを処理するRBAC関数を提供します。

Yiiの汎用性:単純なサイトから複雑なプロジェクトまでYiiの汎用性:単純なサイトから複雑なプロジェクトまでApr 21, 2025 am 12:08 AM

yiiisversatileavssustable ofallsizes.1)simple sites、yiioofferseassetupandrapiddevelopment.2)forcomplexprojects、itModularityandrbacsystemmanageScalabilityandsecurity効果的。

YiiとPHPフレームワークの未来YiiとPHPフレームワークの未来Apr 20, 2025 am 12:11 AM

YIIフレームワークは、PHPフレームワークの将来の開発において引き続き重要な役割を果たします。 1)YIIは、効率的なMVCアーキテクチャ、強力なORMシステム、ビルトインキャッシュメカニズム、リッチ拡張ライブラリを提供します。 2)コンポーネント設計と柔軟性により、複雑なビジネスロジックと安らかなAPI開発に適しています。 3)YIIは、マイクロサービスやコンテナ化などの最新のPHP機能と技術的なトレンドに適応するために絶えず更新されています。

Yii in Action:実際の例とアプリケーションYii in Action:実際の例とアプリケーションApr 19, 2025 am 12:03 AM

YIIフレームワークは、あらゆるサイズのWebアプリケーションの開発に適しており、その利点は高性能で豊富な機能セットにあります。 1)YIIはMVCアーキテクチャを採用しており、そのコアコンポーネントにはActiverCord、ウィジェット、GIIツールが含まれます。 2)要求処理プロセスを通じて、YIIはHTTP要求を効率的に処理します。 3)基本的な使用法は、コントローラーとビューを作成する簡単な例を示しています。 4)高度な使用は、ActiverCordを介したデータベース操作の柔軟性を示しています。 5)デバッグスキルには、デバッグツールバーとロギングシステムの使用が含まれます。 6)パフォーマンスの最適化キャッシュとデータベースクエリの最適化を使用し、コーディング仕様と依存関係インジェクションに従ってコードの品質を向上させることをお勧めします。

Yii2にエラープロンプトを表示する方法Yii2にエラープロンプトを表示する方法Apr 18, 2025 pm 11:09 PM

Yii2には、エラープロンプトを表示する主な方法が2つあります。 1つは、Yii :: $ app-&amp; gt; errorhandler-&amp; gt; exception()を使用して、例外が発生したときにエラーを自動的にキャッチおよび表示することです。もう1つは、$ this-&amp; gt; adderror()を使用することです。これは、モデル検証が失敗したときにエラーを表示し、$ model&amp; gt; getErrors()を介してビューでアクセスできます。ビューでは、if($ errors = $ model-&amp; gt; getErrors())を使用できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール