ホームページ PHPフレームワーク YII Yii フレームワークを使用してオンラインストアを作成する

Yii フレームワークを使用してオンラインストアを作成する

Jun 21, 2023 pm 05:53 PM
オンラインショッピングモール 作成する yii フレームワーク

Web 開発者として、PHP フレームワークの使用を学習し、実践することは間違いなく不可欠です。多くの PHP フレームワークの中でも、Yii フレームワークは効率的でエレガントで安全なフレームワークであり、幅広いユーザー ベースを持っています。

この記事では、Yii フレームワークを使用して基本的なオンライン モール アプリケーションを作成する方法を共有します。アプリケーションには、ユーザー管理、商品管理、ショッピングカート機能などのモールの基本機能が搭載されます。このアプリケーションは、初心者が Yii フレームワークを学ぶための入門練習として使用できます。

Yii フレームワークをインストールする

Yii フレームワークを使い始める前に、まずフレームワークをインストールする必要があります。 Yii フレームワークには複数のインストール方法が用意されており、最も一般的に使用される方法は Composer を使用してインストールすることです。インストールする前に、Composer がインストールされていることを確認する必要があります。

次のコマンドを使用して Yii フレームワークをインストールできます:

composer create-project --prefer-dist yiisoft/yii2-app-basic basic
ログイン後にコピー

上記のコマンドは基本的なアプリケーションを作成します。 http://localhost/basic にアクセスすると、Yii フレームワークが正常にインストールされたかどうかを確認できます。

データテーブルの設計とデータの入力

オンラインモールアプリケーションを作成する前に、モールに関連するデータテーブルを作成し、データを入力する必要があります。この記事では、データベースとして MySQL を使用し、次のデータ テーブルを作成します。

  • ユーザー テーブル: ユーザー名、パスワード、電子メールなどのユーザー情報を保存します。
  • 製品テーブル: 名前、価格、説明などの製品情報を保存します。
  • 注文テーブル: ユーザー ID、製品 ID、注文数量などの注文情報を保存します。
  • カート テーブル: ユーザー ID、製品 ID、数量などのショッピング カート情報を保存します。

上記のデータ テーブルに適切なインデックスを追加すると、クエリの効率が向上します。

以下は、上記のデータ テーブルを作成する SQL ステートメントです:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `product` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `price` float(10,2) NOT NULL,
  `description` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `order` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `product_id` int(11) NOT NULL,
  `quantity` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  KEY `product_id` (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `cart` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `product_id` int(11) NOT NULL,
  `quantity` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  KEY `product_id` (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ログイン後にコピー

次に、アプリケーションをテストするためにデータを入力する必要があります。少なくとも 1 つのユーザー レコードを user テーブルに追加し、少なくとも 1 つの製品レコードを product テーブルに追加します。このユーザーと製品をこの記事の残りの部分のテスト データとして使用します。

ユーザー コントローラーの作成

ユーザー コントローラーを作成することから始めます。 Yii フレームワークでは、コントローラーはアプリケーションのリクエストを処理するコアコンポーネントです。コントローラーは、リクエストの種類を検出し、リクエストに基づいて応答操作メソッドを呼び出す責任があります。

ここで、UserController コントローラーを作成し、基本的なアクション メソッドを追加します。 yiiwebController 拡張機能を使用してコントローラーを作成します。

Yii では、通常、コントローラーのクラス名にコントローラーのサフィックスが追加されます。これにより、クラスによって実装された関数をより適切に説明できます。 UserController クラスの基本コードは次のとおりです。

<?php

namespace appcontrollers;

use yiiwebController;

class UserController extends Controller
{
    public function actionIndex()
    {
        return $this->render('index');
    }

    public function actionLogin()
    {
        // code for login logic
    }

    public function actionRegister()
    {
        // code for registration logic
    }
}
ログイン後にコピー

上記のコードでは、3 つの基本的な操作メソッドを追加しました。 actionIndex() メソッドは、index.php ビュー ファイルをレンダリングします。これはデフォルトのアクションメソッド名です。 actionLogin() メソッドと actionRegister() メソッドは、ユーザーのログインと登録に使用されます。

次に、index.php ビュー ファイルを作成する必要があります。ビュー ファイルは、コントローラーのアクション メソッドの出力です。 Yii フレームワークによって提供される Yii::$app->view->render() メソッドを使用してビューをレンダリングします。

views/user フォルダーにindex.php ファイルを作成し、次のコードを追加します。

<?php

use yiihelpersHtml;

$this->title = 'User';
$this->params['breadcrumbs'][] = $this->title;
?>
<h1><?= Html::encode($this->title) ?></h1>
<p>
Welcome to the user homepage.
</p>
ログイン後にコピー

上記のコードは、ブラウザーに簡単なウェルカム メッセージを表示します。

プロダクト コントローラーとビューの作成

次に、プロダクト コントローラーとビューの作成に進みます。 yiidataActiveDataProvider 拡張機能を使用して製品リスト データを取得します。

ProductController コントローラーを作成し、次のアクション メソッドを追加します。

<?php

namespace appcontrollers;

use yiiwebController;
use appmodelsProduct;
use yiidataActiveDataProvider;

class ProductController extends Controller
{
    public function actionIndex()
    {
        $dataProvider = new ActiveDataProvider([
            'query' => Product::find(),
        ]);

        return $this->render('index', [
            'dataProvider' => $dataProvider,
        ]);
    }

    public function actionAddtocart($id)
    {
        // code for add to cart logic
    }
}
ログイン後にコピー

コードに示すように、最初に Product::find() を使用してすべての製品を取得します。次に、製品リスト データを ActiveDataProvider に配置し、ビューに渡します。この後、ショッピング カートに商品を追加するための actionAddtocart() メソッドを作成します。

製品フォルダーを作成し、このフォルダーの下にindex.phpビュー ファイルを作成する必要があります。 dataProvider によって提供されるデータに基づいて製品のリストを表示する GridView ウィジェットを使用します。商品をカートに追加するためのボタンも追加します。

次は、views/product/index.php ファイルのコードです:

<?php

use yiihelpersHtml;
use yiigridGridView;

$this->title = 'Product';
$this->params['breadcrumbs'][] = $this->title;
?>
<h1><?= Html::encode($this->title) ?></h1>

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        'id',
        'name',
        'price',
        'description',
        [
            'class' => 'yiigridActionColumn',
            'buttons' => [
                'addtocart' => function ($url, $model) {
                    return Html::a('Add to cart', ['product/addtocart', 'id' => $model->id]);
                }
            ],
            'template' => '{addtocart}',
        ],
    ],
]); ?>
ログイン後にコピー

ここで、http://localhost/basic/product/index にアクセスしてビューを確認できます。ブラウザは正しくレンダリングされます。

ショッピング カート コントローラーとビューを作成する

モール内のショッピング カートに追加された商品を管理するには、ショッピング カート コントローラーとビューが必要です。セッションを使用してショッピング カート データを保存します。

CartController コントローラーを作成し、次の操作メソッドを追加します。

<?php

namespace appcontrollers;

use yiiwebController;
use Yii;

class CartController extends Controller
{
    public function actionIndex()
    {
        $cart = Yii::$app->session->get('cart');
        return $this->render('index', [
            'cart' => $cart,
        ]);
    }

    public function actionAdd($id)
    {
        // code for add product to cart logic
    }

    public function actionRemove($id)
    {
        // code for remove product from cart logic
    }
}
ログイン後にコピー

上記のコードでは、最初にセッションに保存されているショッピング カート データを取得します。 actionAdd($id) メソッドでは、指定された ID 番号の商品をショッピング カートに追加します。 actionRemove($id) メソッドでは、指定された ID 番号を持つアイテムをショッピング カートから削除します。

次に、カートフォルダーを作成し、このフォルダーの下にindex.phpビューファイルを作成する必要があります。セッションに保存されたショッピング カート データに基づいてショッピング カート リストをレンダリングする ListView ウィジェットを使用します。また、カート内の商品の数を増減したり、カートから商品を削除したりするためのボタンもいくつか追加されました。

次は、views/cart/index.php ファイルのコードです:

<?php

use yiihelpersHtml;
use yiiwidgetsListView;

$this->title = 'Shopping Cart';
$this->params['breadcrumbs'][] = $this->title;
?>
<h1><?= Html::encode($this->title) ?></h1>

<?= ListView::widget([
    'dataProvider' => $dataProvider,
    'itemView' => '_cart_item',
    'emptyText' => 'Your cart is empty.',
]) ?>
ログイン後にコピー

在views/cart文件夹下创建_cart_item.php视图文件,该文件将被用于渲染购物车列表中的每一行。以下是views/cart/_cart_item.php文件的代码:

<?php

use yiihelpersHtml;
use yiiwidgetsActiveForm;

$form = ActiveForm::begin([
    'id' => 'cart-item-' . $model['id'],
]); ?>

<?= Html::a('Remove', ['cart/remove', 'id' => $model['id']]) ?>

<?= $model['name'] ?>

<?= $form->field($model, 'quantity')->textInput(['value' => $model['quantity']]) ?>

<?= Html::submitButton('Update') ?>

<?php ActiveForm::end(); ?>
ログイン後にコピー

以上代码将会在浏览器中显示购物车列表,用户可以在该列表中执行增加或减少商品数量的操作,也可以删除购物车中已有商品。

完成在线商城应用程序

现在,我们已经完成了基础的在线商城应用程序,该应用程序拥有用户管理,产品管理和购物车等基础功能。该应用程序可以作为初学者学习和实践Yii框架的入门实践。当然,在实际应用中,我们仍需要添加更多功能来满足商城的需求。

以上がYii フレームワークを使用してオンラインストアを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

最新の iOS 17 で iPhone をカスタマイズする方法 最新の iOS 17 で iPhone をカスタマイズする方法 Sep 21, 2023 am 08:17 AM

iPhone で通話をカスタマイズする方法 Apple の iOS 17 では、iPhone の通話画面の外観をカスタマイズできる連絡先ポスターと呼ばれる新機能が導入されています。この機能を使用すると、選択した写真、色、フォント、ミー文字を連絡先カードとして使用してポスターをデザインできます。そのため、電話をかけると、受信者の iPhone にあなたのカスタム画像が想像どおりに表示されます。独自の連絡先ポスターを保存されているすべての連絡先と共有するか、誰が閲覧できるかを選択できます。同様に、通話交換中に他の人の連絡先ポスターも表示されます。さらに、Apple では、個々の連絡先に特定の連絡先の写真を設定し、それらの連絡先から電話をかけることができます

Realme Phoneでフォルダーを作成するにはどうすればよいですか? Realme Phoneでフォルダーを作成するにはどうすればよいですか? Mar 23, 2024 pm 02:30 PM

タイトル: Realme Phone 初心者ガイド: Realme Phone でフォルダーを作成する方法?今日の社会において、携帯電話は人々の生活に欠かせないツールとなっています。人気のスマートフォン ブランドとして、Realme Phone はそのシンプルで実用的なオペレーティング システムでユーザーに愛されています。 Realme 携帯電話を使用する過程で、多くの人が携帯電話上のファイルやアプリケーションを整理する必要がある状況に遭遇する可能性があり、フォルダーを作成するのが効果的な方法です。この記事では、ユーザーが携帯電話のコンテンツをより適切に管理できるように、Realme 携帯電話にフォルダーを作成する方法を紹介します。いいえ。

GIMPでピクセルアートを作成する方法 GIMPでピクセルアートを作成する方法 Feb 19, 2024 pm 03:24 PM

この記事は、Windows でのピクセル アート作成に GIMP を使用することに興味がある場合に役立ちます。 GIMP は、無料でオープンソースであるだけでなく、美しい画像やデザインを簡単に作成できる有名なグラフィック編集ソフトウェアです。 GIMP は、初心者にもプロのデザイナーにも同様に適していることに加えて、描画と作成のための唯一の構成要素としてピクセルを利用するデジタル アートの形式であるピクセル アートの作成にも使用できます。 GIMP でピクセル アートを作成する方法 Windows PC で GIMP を使用してピクセル アートを作成する主な手順は次のとおりです。 GIMP をダウンロードしてインストールし、アプリケーションを起動します。新しいイメージを作成します。幅と高さのサイズを変更します。鉛筆ツールを選択します。ブラシの種類をピクセルに設定します。設定

Gree+ でファミリーを作成する方法 Gree+ でファミリーを作成する方法 Mar 01, 2024 pm 12:40 PM

「Gree+ ソフトウェアでファミリーを作成する方法を知りたい」という友達がたくさんいました。操作方法は次のとおりです。詳しく知りたい友達は、一緒に見に来てください。まず、携帯電話で Gree+ ソフトウェアを開き、ログインします。次に、ページ下部のオプション バーで、右端の [My] オプションをクリックして、個人アカウント ページに入ります。 2. マイページにアクセスすると、「ファミリー」の下に「ファミリーを作成」という項目があるので、それをクリックして入力します。 3. 次にファミリーを作成するページにジャンプし、表示に従って入力ボックスに設定するファミリー名を入力し、入力後右上の「保存」ボタンをクリックします。 4. 最後に、ページの下部に「正常に保存しました」というプロンプトが表示され、ファミリが正常に作成されたことが示されます。

ハイチャートを使用してガント チャートを作成する方法 ハイチャートを使用してガント チャートを作成する方法 Dec 17, 2023 pm 07:23 PM

Highcharts を使用してガント チャートを作成する方法には、特定のコード サンプルが必要です。はじめに: ガント チャートは、プロジェクトの進捗状況や時間管理を表示するためによく使用されるチャート形式です。タスクの開始時刻、終了時刻、進捗状況を視覚的に表示できます。 Highcharts は、豊富なチャート タイプと柔軟な構成オプションを提供する強力な JavaScript チャート ライブラリです。この記事では、Highcharts を使用してガント チャートを作成する方法と具体的なコード例を紹介します。 1. ハイチャート

iPhone 用の連絡先ポスターを作成する方法 iPhone 用の連絡先ポスターを作成する方法 Mar 02, 2024 am 11:30 AM

iOS17 では、Apple は一般的に使用される電話アプリと連絡先アプリに連絡先ポスター機能を追加しました。この機能を使用すると、ユーザーは連絡先ごとにパーソナライズされたポスターを設定できるため、アドレス帳がより視覚的で個人的なものになります。連絡先ポスターは、ユーザーが特定の連絡先をより迅速に識別して見つけるのに役立ち、ユーザー エクスペリエンスを向上させます。この機能により、ユーザーは自分の好みやニーズに応じて各連絡先に特定の写真やロゴを追加でき、アドレス帳のインターフェイスがより鮮明になり、iOS17 では Apple は iPhone ユーザーに自分自身を表現する新しい方法を提供し、パーソナライズ可能な連絡先ポスターを追加しました。連絡先ポスター機能を使用すると、他の iPhone ユーザーに電話をかけるときに、独自のパーソナライズされたコンテンツを表示できます。あなた

Django の概要: コマンド ラインを使用して最初の Django プロジェクトを作成する Django の概要: コマンド ラインを使用して最初の Django プロジェクトを作成する Feb 19, 2024 am 09:56 AM

Django プロジェクトの旅を始めましょう: コマンド ラインから開始して、最初の Django プロジェクトを作成します。Django は、強力で柔軟な Web アプリケーション フレームワークです。Python をベースにしており、Web アプリケーションの開発に必要な多くのツールと機能を提供します。この記事では、コマンド ラインから最初の Django プロジェクトを作成する方法を説明します。始める前に、Python と Django がインストールされていることを確認してください。ステップ 1: プロジェクト ディレクトリを作成する まず、コマンド ライン ウィンドウを開き、新しいディレクトリを作成します。

PHPを使用して確認コードイメージを作成するにはどうすればよいですか? PHPを使用して確認コードイメージを作成するにはどうすればよいですか? Sep 13, 2023 am 11:40 AM

PHPを使用して確認コードイメージを作成するにはどうすればよいですか? CAPTCHA は、ユーザーが機械ではなく人間であるかどうかを確認するために一般的に使用される方法です。 Web サイトでは、ログイン、登録、コメントなどの操作を完了するために、画像上に表示されるランダムな文字や数字を入力する必要がある認証コードの画像をよく見かけます。この記事では、PHP を使用して検証コード イメージを作成する方法と、具体的なコード例を紹介します。 1. PHPGD ライブラリ 検証コードイメージを作成するには、PHP の GD ライブラリを使用する必要があります。 GD ライブラリは、画像を処理するための拡張機能です。

See all articles