使用 Laravel 纯手工打造一个简单的电子商务网站(一) —— 后台新增商品及前台显示


1、概述

本系列教程我们将演示如何使用 Laravel 5.2 纯手工打造一个简单但功能完备的电商网站。这个电商网站只售卖以ZIP格式打包的电子文章,用户下单并付款后即可下载,有点类似一些售卖网站主题(打包的文件)的网站,比如ThemeForest。

我们将会用到Laravel的一些功能特性,比如存储(Storage)和支付(Cashier),我们使用Storage将打包后的文章存储起来并放到网站售卖,而Cashier则用于下单后使用信用卡支付。和世界上其他大大小小的电商网站一样,我们首先要做的事情是上架商品,所以本章节我们将会创建一个可以添加商品的后台以及一个展示商品列表的前台页面。

本系列教程完整代码可以在GitHub上获取:https://github.com/nonfu/laravel-store

2、安装&设置

在此之前我们假设你已经安装好了Laravel并设置好了数据库连接,如果没有的话,请参考安装文档进行安装配置。

然后我们使用 Bootstrap 和 FontAwesome 来创建一个样式美观的布局页面。在layouts目录下创建一个master.blade.php文件,编辑其内容如下:

在该文件中我们定义了一个简单的布局:一个导航条以及一些链接。在页面头部加载了 Bootstrap 和 FontAwesome 的 CSS 样式文件,正如你所看到的,我们已经为网站定义了所有需要的菜单项,至于其实现我们将会在下一节讨论,下面我们将会到入之前所说创建商店的后台以便添加商品和文件。

3、后台实现

要保存所有商品信息首先我们需要创建相应的数据表,这里我们创建两个:productsfiles,分别用于商品信息和文件信息。我们使用 Artisan 命令来创建迁移文件:

编辑相应的迁移文件内容如下:

其中我们使用file_id建立与files表的关联:

根据上述代码我们还需要创建两个视图文件,首先是resources/view/admin/new.blade.php

然后是resources/view/admin/products.blade.php

最后要做的就是在routes.php中定义路由:

这样我们访问后台页面时就能看到如下页面:

Laravel商店后台

添加新商品页面如下:

Laravel 商店新增商品

至此,一个简单的商城后台就这么实现了,对生产环境而言这还不够,但是所有一个商城需要的基本功能已经具备了,你可以添加一个新商品,应用会将其对应的文件存储到指定目录,这里要感谢Laravel提供的Storage API,你可以将文件存在本地,也可以存放到Amazon S3或者Dropbox,只需要修改配置文件就行,不需要修改任何代码。

4、前台展示

后台新增商品后需要在前台将商品展示给用户,我们将相应的逻辑整合到前端控制器MainController中,仍然使用命令行创建这个控制器:

编辑这个控制器的代码如下:

我们只是简单定义了一个index方法来获取所有商品, 并将其渲染到main.index页面,下面我们来创建这个页面resources/view/main/index.blade.php,编辑文件内容如下:

和后台一样我们也要定义相应的路由:

这样我们访问前台页面就能看到创建的商品了:

Laravel 商店商品列表

本章节我们实现了后台添加商品和前台展示商品的功能,下一节我们将实现用户认证和购物车功能。

注:本文整理自https://www.codetutorial.io/how-to-craft-a-digital-e-shop-with-laravel/,完整代码可以从GitHub获取https://github.com/nonfu/laravel-store

<< 上一篇: Laravel 5.1 测试系列 —— PHPUnit 安装及简单单元测试示例

>> 下一篇: 使用 Laravel 纯手工打造一个简单的电子商务网站(二) —— 用户认证及购物车功能实现