onurokkyay/yii2-shopping

Yii2 购物模块

安装: 6

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

dev-main 2021-03-23 13:12 UTC

This package is auto-updated.

Last update: 2024-09-23 20:19:38 UTC


README

Yii2 购物模块

Yii2 KOU E-Ticaret Sitesi

我们是一个四人小组完成了这个项目。

模块

180202052-Melih Çalışkan-> Products-> 列出产品,添加到购物车,为管理员添加产品选项卡

180202039-Onur Okyay-> Shopping-> 列出购物车中的产品,购买,显示购买历史

180202105-Sabri Kusay Gülmez-> Category-> 列出类别,根据选择的类别列出产品,为管理员添加类别

180202026-Imran Kucur-> Reviews-> 为每个产品添加评论和评分,显示选定产品的所有评论

User-> 注册-登录,我的账户选项卡

安装

卸载Vagrant后,使用ssh连接并进入终端,然后输入以下内容。

composer require melih058/yii2-migrations "dev-main"

composer require melih058/yii2-products "dev-main"

composer require sabsay03/yii2-categories "dev-main"

composer require imrankucur/yii2-reviews "dev-main"

composer require sabsay03/yii2-user "dev-main"

composer require onurokkyay/yii2-shopping "dev-main"

Advanced中的vendor目录中应生成以下文件。

Advanced->backend->config->main.php中应按以下方式引用模块。

'modules' => [
        'products' => [
            'class'=>'melih058\products\Module'
        ],
        'shopping' => [
    'class' => 'onurokkyay\shopping\Module',
    ],
        'user' => [
    'class' => 'sabsay03\user\Module',
],
        'categories' => [
            'class' => 'sabsay03\categories\Module',
        ],
        'reviews' => [
            'class' => 'imrankucur\reviews\Module',
        ],
    ]

迁移

在Advanced内部(cd /var/www/advanced)在终端中输入以下命令。

在phpmyadmin中进入user部分并使用root登录后,创建一个名为yii2advanced的新数据库。

php yii migrate --migrationPath=@melih058/migrations/migrations

看到7个新迁移后,输入yes确认,然后在phpmyadmin中检查表格。

网站外观

将以下内容全部复制并粘贴到advanced->backend->views->layout->main.php中。

<?php

/* @var $this \yii\web\View */
/* @var $content string */

use backend\assets\AppAsset;
use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use common\widgets\Alert;

AppAsset::register($this);
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
    <meta charset="<?= Yii::$app->charset ?>">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?php $this->registerCsrfMetaTags() ?>
    <title><?= Html::encode($this->title) ?></title>
    <?php $this->head() ?>
</head>
<body>
<?php $this->beginBody() ?>

<div class="wrap">
    <?php
    NavBar::begin([
        'brandLabel' => '<class="img-responsive"/>Admin',
        'brandUrl' => 'http://advanced/backend/web/index.php?r=user/user/index',
        'options' => [
            'class' => 'navbar-inverse navbar-fixed-top',
        ],
    ]);
    $menuItems = [
        ['label' => 'Ana Sayfa', 'url' => ['/site/index']],
        ['label' => 'Ürünler', 'url' => ['/products/products/index']],
        ['label' => 'Kategoriler', 'url' => ['/categories/categories/index']],
    ];
    if (Yii::$app->user->isGuest) {
        $menuItems[] = ['label' => 'Giriş Yap', 'url' => ['/site/login']];
        $menuItems[] = ['label' => 'Kayıt Ol', 'url' => ['/site/signup']];

    } else {


       $menuItems[] = ['label' => 'Sepetim', 'url' => ['/shopping/shopping/index']];
            $menuItems[] = ['label' => 'Sipariş Geçmişim', 'url' => ['/shopping/purchasehistory/index']];
        $menuItems[] = ['label' => 'Hesabım', 'url' => ['/user/user/view']];
        $menuItems[] = '<li>'
            . Html::beginForm(['/site/logout'], 'post')
            . Html::submitButton(
                'Çıkış Yap (' . Yii::$app->user->identity->username . ')',
                ['class' => 'btn btn-link logout']
            )
            . Html::endForm()
            . '</li>';
    }
    echo Nav::widget([
        'options' => ['class' => 'navbar-nav navbar-right'],
        'items' => $menuItems,
    ]);
    NavBar::end();
    ?>

    <div class="container">
        <?= Breadcrumbs::widget([
            'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
        ]) ?>
        <?= Alert::widget() ?>
        <?= $content ?>
    </div>
</div>

<footer class="footer">
    <div class="container ">
        <p class="pull-left">&copy; <?= Html::encode(Yii::$app->name) ?> <?= date('Y') ?></p>
        <p class="pull-right"><?= Yii::powered() ?></p>
    </div>
</footer>

<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>

将以下内容全部复制并粘贴到advanced->backend->views->site->index.php中。

<?php

/* @var $this yii\web\View */

$this->title = 'KOU E-Ticaret';
?>
<div class="site-index">

    <div class="jumbotron">
        <h1>Hoşgeldiniz</h1>



        <p><a class="btn btn-lg btn-success" href=/backend/web/index.php?r=products/products/index>Alışverişe Başla!</a></p>

        <p><a class="btn btn-lg btn-success" href=/backend/web/index.php?r=categories/categories/index>Kategoriler</a></p>
    </div>
</div>

注册

从以下链接注册。

http://advanced/frontend/web/index.php?r=site%2Fsignup

然后进入phpmyadmin,在user表中将status从9改为10。

注册完成后,从以下链接登录。

http://advanced/backend/web/index.php?r=site%2Flogin

由于第一个注册的用户在user表中的id为1,所以id为1的用户是管理员。管理员可以使用网站左上角的管理功能。其他用户不能使用此选项卡。 管理员用户名:admin 密码:12345678

Yii2 Shopping 模块

登录后,我的购物车和购买历史选项卡将变为活动状态。

购物车页面

advanced/backend/web/index.php?r=shopping/purchasehistory/index

使用ListView::widget显示购物车中的所有产品。

shoppingcart表中保存当前userid(与user表中的id匹配)和添加到购物车的productid(与products表中的id匹配)。

点击删除按钮可以删除产品。

点击“完成购物”按钮可以购买所有产品。shoppingcart表中的所有与登录用户匹配的userid值被移除并添加到purchasehistory表中。添加后,从shoppingcart表中删除与登录用户匹配的所有值。

购物按钮将导向Purchase.php,并触发ShoppingcartController中的actionPurchase。数据库操作如下。

public function actionPurchase()
    {

        $uid=Yii::$app->user->id;
        $sql = "select productid from shoppingcart where userid='$uid) . '";

        $result=Yii::$app->db
            ->createCommand($sql)
            ->queryColumn();

        foreach ($result as $row) {

            $sql1 = "insert into purchasehistory (userid,productid) values ( '$uid) . ','$row) . ')";

            $result=Yii::$app->db
                ->createCommand($sql1)
                ->execute();
        }

        $sql2 = "delete from shoppingcart where userid='$uid) . '";

        $result=Yii::$app->db
            ->createCommand($sql2)
            ->execute();

    }
购物车页面

SepetimSayfası

订单历史页面

http://advanced/backend/web/index.php?r=shopping/shopping/index

使用ListView::widget显示与当前userid匹配的所有购买产品。

purchasehistory表中列出了与当前userid匹配的所有行(与products表中的id匹配)。

订单历史页面

SiparişGeçmişi

示例shoppingcart表

shoppingcart表

Sepetim

示例purchasehistory表

purchasehistory表

SiparişGeçmişi