使用Yii框架創(chuàng)建線上商城
Jun 21, 2023 pm 05:53 PM作為一個Web開發(fā)者,學習和實踐使用PHP框架無疑是必不可少的。在眾多PHP框架中,Yii框架是一款高效,優(yōu)雅,安全的框架,擁有廣泛的使用者群體。
在本文中,我將分享如何使用Yii框架來建立一個基礎(chǔ)線上商城應(yīng)用程式。該應(yīng)用程式將具備基本的商城功能,如用戶管理,產(chǎn)品管理和購物車等功能。該應(yīng)用程式可以作為初學者學習Yii框架的入門實踐。
安裝Yii框架
在開始使用Yii框架之前,我們需要先安裝該框架。 Yii框架提供了多種安裝方法,最常用的方法是使用Composer安裝。在安裝前,我們需要確認已安裝Composer。
我們可以使用以下指令來安裝Yii框架:
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
以上指令將會建立一個基礎(chǔ)應(yīng)用程式。你可以透過造訪http://localhost/basic來確認Yii框架是否安裝成功。
資料表設(shè)計與資料填充
在創(chuàng)建線上商城應(yīng)用程式之前,我們需要建立與商城相關(guān)的資料表,以及填入資料。本文將使用MySQL做為資料庫,並建立以下資料表:
- User表: 儲存使用者信息,如使用者名,密碼和電子郵件等。
- Product表: 儲存商品訊息,如名稱,價格和描述等。
- Order表: 儲存訂單信息,如使用者ID,商品ID和訂購數(shù)量等。
- Cart表: 儲存購物車信息,如用戶ID,商品ID和數(shù)量等。
為上述資料表新增適當?shù)乃饕梢蕴岣卟樵冃省?
下面是以上資料表的建表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;
現(xiàn)在,我們需要填入資料來測試應(yīng)用程式。為user表新增至少一個使用者記錄,為product表新增至少一個產(chǎn)品記錄。在本文的剩餘部分,我們將使用該使用者和產(chǎn)品作為測試資料。
建立使用者控制器
我們將從建立使用者控制器開始。在Yii框架中,控制器是處理應(yīng)用程式請求的核心元件。控制器負責偵測請求類型,並根據(jù)請求呼叫回應(yīng)的操作方法。
現(xiàn)在,我們建立UserController控制器並新增基本操作方法。我們將使用yiiwebController擴充功能來建立控制器。
在Yii中,控制器類別名稱通常會加上Controller後綴,這樣可以更好地描述該類別實現(xiàn)的功能。以下是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 } }
在上述程式碼中,我們新增了三個基本操作方法。 actionIndex()方法將渲染index.php檢視檔。這是預設(shè)的操作方法名稱。 actionLogin()和actionRegister()方法將用於使用者登入和註冊。
現(xiàn)在,我們需要建立index.php檢視檔。視圖檔案是控制器中操作方法的輸出結(jié)果。我們將使用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>
以上程式碼將會在瀏覽器上顯示簡單的歡迎訊息。
建立產(chǎn)品控制器和視圖
現(xiàn)在,我們將繼續(xù)建立產(chǎn)品控制器和視圖。我們將使用yiidataActiveDataProvider擴充功能來取得產(chǎn)品清單資料。
建立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()來取得所有產(chǎn)品。然後,我們將產(chǎn)品清單資料放在ActiveDataProvider中並將其傳遞給視圖。此後,我們創(chuàng)建actionAddtocart()方法以用於在購物車中添加商品。
我們需要建立product資料夾並在該資料夾下建立index.php檢視檔。我們使用GridView小工具,該小工具將根據(jù)dataProvider提供的資料渲染產(chǎn)品清單。我們還添加一個按鈕用於將產(chǎn)品添加到購物車中。
以下是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}', ], ], ]); ?>
現(xiàn)在,我們可以在瀏覽器中存取http://localhost/basic/product/index來確認該視圖是否被正確渲染。
建立購物車控制器和視圖
我們需要一個購物車控制器和視圖來管理商城中添加到購物車中的商品。我們將使用session來儲存購物車資料。
我們建立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 } }
在上述程式碼中,我們首先取得session中儲存的購物車資料。在actionAdd($id)方法中,我們將會加入指定ID號碼的商品到購物車中。在actionRemove($id)方法中,我們將會從購物車中移除指定ID號的商品。
接下來,我們需要建立cart資料夾,並在該資料夾下建立index.php檢視檔。我們使用ListView小工具,該小工具將根據(jù)session中儲存的購物車資料渲染購物車清單。我們還添加了一些按鈕用於增加或減少購物車中的商品數(shù)量或刪除購物車中的商品。
以下是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文件夾下創(chuàng)建_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(); ?>
以上代碼將會在瀏覽器中顯示購物車列表,用戶可以在該列表中執(zhí)行增加或減少商品數(shù)量的操作,也可以刪除購物車中已有商品。
完成在線商城應(yīng)用程序
現(xiàn)在,我們已經(jīng)完成了基礎(chǔ)的在線商城應(yīng)用程序,該應(yīng)用程序擁有用戶管理,產(chǎn)品管理和購物車等基礎(chǔ)功能。該應(yīng)用程序可以作為初學者學習和實踐Yii框架的入門實踐。當然,在實際應(yīng)用中,我們?nèi)孕枰砑痈喙δ軄頋M足商城的需求。
以上是使用Yii框架創(chuàng)建線上商城的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

很多朋友表示想知道在格力+軟體裡該怎麼去創(chuàng)建家庭,下面為大家?guī)砹瞬僮鞣椒?,想要了解的朋友和我一起來看看吧。首先,開啟手機上的格力+軟體,並登入。接著,在頁面底部的選項列中,點選最右邊的「我的」選項,即可進入個人帳戶頁面。 2.來到我的頁面後,在“家庭”下方的選項裡有一個“創(chuàng)建家庭”,找到後在它的上面點擊進入。 3.接下來跳到建立家庭的頁面裡,根據(jù)提示在輸入框裡輸入要設(shè)定的家庭名稱,輸入好後在右上角點選「儲存」按鈕。 4.最後在頁面下方會彈出一個「儲存成功」的提示,代表家庭已經(jīng)成功創(chuàng)建好了。

標題:真我手機新手指南:如何在真我手機上建立資料夾?在現(xiàn)今社會,手機已成為人們生活中不可或缺的工具。而真我手機作為一款備受歡迎的智慧型手機品牌,其簡潔、實用的作業(yè)系統(tǒng)備受用戶喜愛。在使用真實我手機的過程中,很多人可能會遇到需要整理手機中的檔案和應(yīng)用程式的情況,而建立資料夾就是一種有效的方式。本文將介紹如何在真我手機上建立資料夾,幫助使用者更好地管理自己的手機內(nèi)容。第

本文將引起您的興趣,如果您有意在Windows上使用GIMP進行像素藝術(shù)創(chuàng)作。 GIMP是一款著名的圖形編輯軟體,不僅免費開源,還能幫助使用者輕鬆創(chuàng)造美麗的圖像和設(shè)計。除了適用於初學者和專業(yè)設(shè)計師外,GIMP也可以用於製作像素藝術(shù),這種數(shù)位藝術(shù)形式是利用像素作為唯一構(gòu)建塊來進行繪製和創(chuàng)作的。如何在GIMP中建立像素藝術(shù)以下是在WindowsPC上使用GIMP建立像素圖片的主要步驟:下載並安裝GIMP,然後啟動應(yīng)用程式。創(chuàng)造一個新的形象。調(diào)整寬度和高度的大小。選擇鉛筆工具。將筆刷類型設(shè)定為像素。設(shè)定

如何使用Highcharts建立甘特圖表,需要具體程式碼範例引言:甘特圖是一種常用於展示專案進度和時間管理的圖表形式,能夠直觀地展示任務(wù)的開始時間、結(jié)束時間和進度。 Highcharts是一款功能強大的JavaScript圖表庫,提供了豐富的圖表類型和靈活的配置選項。本文將介紹如何使用Highcharts建立甘特圖表,並給出具體的程式碼範例。一、Highchart

Django專案開啟之旅:從命令列開始,創(chuàng)建你的第一個Django專案Django是一個強大且靈活的網(wǎng)路應(yīng)用框架,它以Python為基礎(chǔ),提供了許多開發(fā)Web應(yīng)用所需的工具和功能。本文將帶領(lǐng)你從命令列開始,創(chuàng)建你的第一個Django專案。在開始之前,請確保你已經(jīng)安裝了Python和Django。步驟一:建立專案目錄首先,開啟命令列窗口,並建立新的目錄

在iOS17中,Apple為其常用的「電話」和「通訊錄」應(yīng)用程式新增了聯(lián)絡(luò)人海報功能。這項功能允許用戶為每個聯(lián)絡(luò)人設(shè)置個人化的海報,使通訊錄更具視覺化和個人化。聯(lián)絡(luò)人海報可以幫助用戶更快速地識別和定位特定聯(lián)絡(luò)人,提高了用戶體驗。透過這項功能,使用者可以根據(jù)自己的喜好和需求,為每個聯(lián)絡(luò)人添加特定的圖片或標識,使通訊錄介面更加生動iOS17中的Apple為iPhone用戶提供了一種新穎的方式來表達自己,並添加了可個性化的聯(lián)繫海報。聯(lián)絡(luò)人海報功能可讓您在呼叫其他iPhone用戶時展示獨特的個人化內(nèi)容。您

MDF檔案是一種常見的資料庫檔案格式,它是MicrosoftSQLServer資料庫的主要檔案之一。在資料庫管理系統(tǒng)中,MDF檔案用於保存資料庫的主要數(shù)據(jù),包括表、索引、預存程序等。建立MDF檔案是建立資料庫的關(guān)鍵步驟之一,以下將介紹一些常見的方法。使用SQLServerManagementStudio(SSMS)SQLServerManag

掃描全能王如何創(chuàng)建文檔?在掃描全能王APP中是可以創(chuàng)建新的文檔,多數(shù)的用戶不知道如何創(chuàng)建文檔,接下來就是小編為用戶帶來的掃描全能王創(chuàng)建文檔方法圖文教程,感興趣的用戶快來一起看看吧!掃描全能王使用教學掃描全能王如何建立文件1、先開啟掃描全能王APP,之後在主頁點選右上角【三個點】按鈕;2、接著下方會展開功能欄,點選【新建資料夾】服務(wù);3、然後跳轉(zhuǎn)出來小窗口,在新建資料夾邊框中輸入名稱點擊【確定】;4、最後之後創(chuàng)建資料夾之後,進入到資料夾返回到我的文件頁面即可看到新建立的文件夾。
