[开源项目] 星期一商城。用 Laravel 写了个商城,哈哈

当然不是大商城,小商城都不算,啊哈 :smirk:
file
还是 get 到很多技能, 在 windows 下做了订阅推送。用的 windows 相比 linux 蹩脚的定时任务。啊哈。


WaitMoonMan/monday-shop


demo 地址
http://or2pofbfh.bkt.clouddn.com/github/index_pc.png

Feture

  • 第三方登录
    • Github
    • QQ
    • 微博
  • 购物车使用 H5 本地存储 + 数据库持久化存储
  • 商品搜索支持拼音首字母 + AJAX 无刷新显示
  • 订阅之后每周推送一封邮件包含最受欢迎,最新,最火卖商品的信息
  • 响应式网站

    Installation

    1. 获取源代码
  • 直接下载压缩包或者monday-shop.zip下载
  • 或者git克隆源代码
    git clone git@github.com:davidnineroc/monday-shop.git master
    1. 安装依赖扩展包
      composer install
    2. 生成配置文件(修改其中的配置选项:数据库的一定要修改)
      cp .env.example .env
    3. 使用安装命令(会执行执行数据库迁移,填充,监听队列 !!! 不需要再监听队列,此命令已包含)
      php artisan gps:install

      Usage

  • 任务调度(打算每周六早八点发送订阅邮件/ !!! 为方便展示,项目现为五分钟发送一次订阅)
    • windows下使用laravel任务调度先把
    • linux请去看官网

      Commands

      命令 一句话描述
      php artisan gps:install 安装应用程序
      php artisan gps:uninstall 卸载网站(清空数据库,缓存,路由)
      php artisan gps:cache 执行缓存(缓存配置,路由,类映射)
      php artisan gps:clear 清除缓存
      php artisan gps:copy 复制项目内置的静态资源
      php artisan gps:delete 删除项目及上传的基本静态资源
      php artisan queue:work --tries=3 监听队列(邮件发送,图片裁剪 !!!

      Packages

      扩展包 一句话描述 在本项目中的使用案例
      mews/captcha 验证码 登录注册功能使用验证码验证
      overtrue/laravel-socialite 第三方登录 用户登录可以使用Github,QQ,新浪微博
      spatie/laravel-permission 权限管理包 后台管理员操作权限
      etrepat/baum 无限分类 递归效率很低,快速让你的数据模型支持无限极树状层级结构,并且兼顾效率。
      intervention/image 图片处理 是为 Laravel 定制的图片处理工具,加水印
      webpatser/laravel-uuid uuid生成 商品添加增加一个uuid,订单号
      renatomarinho/laravel-page-speed 压缩页面DOM 打包优化您的网站自动导致35%以上的优化
      overtrue/laravel-pinyin 汉语拼音翻译 分类首字母查询

      Reference

  • Laravel 的中大型專案架構
  • 十个 Laravel 5 程序优化技巧

    Errors

  • 监听队列如果长时间没反应,或者一直重复任务
    • 数据库没配置好,导致队列任务表连接不上
    • 邮件配置出错,导致发送邮件一直失败

      License

      MIT


那啥, 第三方登录只能自己的账号登录,别人登录会提示报错, QQ 互联登录是审核通不过了, github 的第三方登录需要什么验证?


2017-11-20
今天集成进去了支付宝和微信支付。个人用户也可以用的支付。 用的是某 p, 还是挺简单的。


2017-12-20
今天完善了权限控制,可能和常规的有点不一样(我也不知道常规的啥样 ^_^)

  1. laravel-permission基础的表上加了一个route字段,
    file
  2. 填充数据的时候,顺便把需要权限控制的路由填充上。
    file
  3. 中间件中: 先获取当前URL的路由名字 --> 通过路由名字查找权限名字 -> 然后判断当前用户是否拥有此权限
    file

    有空的朋友也可以提pr给我,我合并一下。
    后台地址: /admin
    账号:admin
    密码:admin
    源码地址 https://github.com/DavidNineRoc/monday-sho...

本作品采用《CC 协议》,转载必须注明作者和本文链接
当神不再是我们的信仰,那么信仰自己吧,努力让自己变好,不辜负自己的信仰!
本帖由 Summer 于 5年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 175
Complicated

厉害厉害,下载下来好好学习一下

5年前 评论

@Complicated 不足的地方还得指教

5年前 评论

不错 :+1:

5年前 评论

@ElfSundae 已加入肯德基套餐,今晚准备享用

5年前 评论
xuding

设计是自己做的?

5年前 评论

@XuDing 偷偷的说, 都是模板 :flushed:

5年前 评论

Run php artisan gps:install
Show error
[PDOException]
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint

5年前 评论

@newbie2005 外键的问题吧,把你的 默认 mysql 引擎换成 InnoDB

5年前 评论

Failed App/Mail/UserRegister 卡到这里不动了.得不到upload这个文件夹

5年前 评论

@过江的桥

file
是先 copy 静态资源的,然后会执行队列。

5年前 评论

Failed App/Mail/UserRegister 这个错误是因为邮件发送失败,你需要配置一下 .env 的邮件配置信息

5年前 评论

这个不是卡主, 是 laravel在等待队列执行,你可以注册账号,他就会产生队列。

5年前 评论

file
刚才看了一下 觉得很棒呀,我膜拜所有大神!作为新入门的菜鸟,打算有时间好好研究一下,很感谢您的分享哈

5年前 评论

@xylovevae smile: 视频播放不了,可能是因为被禁止了, 因为商品的详情数据是从一个json文件解析出来的,里面的图片,视频都是写死的固定链接。其中可能会有一些链接是打不开的。
file

5年前 评论

东西太贵了

5年前 评论

@KevinYang 哈哈 :relaxed: 不要在意这些细节。

5年前 评论

就算是测试 放在外网的东西还是关掉debug好点 不然会暴露很多东西的(虽然不一定重要)
报个bug 微博登录 => 取消

5年前 评论

@rookie0 谢谢提醒,已关闭。 微博登录 bug 授权失败可能是因为应用没审核过关, 能否说一下具体的错误?现在我的账号是可以成功了。

5年前 评论

点击到微博登录界面 但是取消登录 应该是没做回调的错误处理
错误URL http://shop.shiguopeng.cn/auth/weibo/callb...

5年前 评论

@rookie0 现在暂时做捕获异常然后跳转到登录页处理。

5年前 评论

用的是 ping++?

5年前 评论
hezhizheng

请问你是怎么处理库存的,应该在哪一个环节对商品库存进行扣减?

5年前 评论

@hezhizheng 单个商品购买下单和加入购物车的时候。

5年前 评论

我发现好像后台的权限管理貌似有点问题

5年前 评论

@yxhsea 的确是有问题的,当时想是作为理解,然后发现时间不够了,就没有做完。

5年前 评论

某p是哪个请问

5年前 评论
xingchen

我拿着你的源码改一改接项目赚钱 看你怎么办

5年前 评论
幽弥狂

@xingchen 他也没办法只能选择原谅你

5年前 评论
Jennie

咦 打不开了。

5年前 评论

@当燃 服务器换成 linux 还没布置过来

5年前 评论
何夕

老铁 数据库有吗?

5年前 评论

@何夕 看一下 readme, laravel程序中使用的是数据库迁移,在执行了php artisan gps:install之后会自动为你生成数据表,和填充数据库

5年前 评论
何夕

@施国鹏 laravel新手,很多不知道,受教了

5年前 评论

为啥感觉反应有点慢

5年前 评论

@wlaravel 可能是因为有些图片是通过 faker 填充的,导致加载的时候需要时间, 当然你如果愿意,可以页面静态话一下

5年前 评论

安装那个依赖扩展包提示我的PHP版本不是7.0的但是我版本已经换了啊

5年前 评论

@晚修 请把错误消息贴出来一下

5年前 评论

你的 PHP 版本是 5.6 的,你服务器上安装了多个 PHP 版本吧,你可以 php -v看一下

5年前 评论

@DavidNineRoc 额 看过了显示是7.0.12版本的...

5年前 评论

@晚修 如果 PHP 5.6 不重要的话,建议你把它卸载了然后再试试

5年前 评论

@DavidNineRoc 额 我刚试别的也是 提示我版本不对...

file

5年前 评论

@晚修 就是你版本的问题吧,你可以尝试 yum remove php5.6 ,

5年前 评论

@DavidNineRoc 不是很会用哪个yum .... 我再想想办法把. 卸载了重新装太多数据麻烦 -.-

5年前 评论

@DavidNineRoc

file

图片显示不存怎么办? 执行了php artisan storage:link命令页不行

5年前 评论

@chun

  1. 看一下 public/storage 下的文件是否存在
  2. 如果没有文件,尝试执行php artisan gps:copy复制静态资源文件
5年前 评论

@chinalorin thanks, 好久没更新了,也不知道什么时候才有空继续弄 :satisfied:

5年前 评论

@alber1986 界面是国外的一个HTML模板,然后修修补补一些,喜欢这个模板的,下载链接在这里。
在tmplate目录
file

5年前 评论

链接写错了 __ 版本

5年前 评论

求大神指导

file

5年前 评论

大神 不好意思啊 ini 中 有个东西没开 解决了

5年前 评论

大神我又来了

file

5年前 评论

@晚修 文件已经存在,先把 public/storage 删除再执行

5年前 评论

@THO_MAS 只有订单列表用户中心看订单,至于更复杂的操作,就没写了,当时是毕业设计一个月前写的,当毕业设计交了。最近公司也忙,自己也看一些其他的,就没有增加新功能。

5年前 评论

商品的属性可以设置成两种或者两种以上呢

5年前 评论

@魏文豪 当然可以设置呀,种类相同的属性,不同的属性值

5年前 评论

安装的时候队列等待了快一个小时了,没有提示错误,是不是需要把数据库清了再装?

5年前 评论

楼主有没有数据库啊?我想把这个搭起来看看,感谢分享

5年前 评论

@laopan1234 安装的时候,会一直处在队列监听的状态,你可以直接关闭,但是之后的邮件发送会存在队列数据库中,不会发送,你需要手动处理队列

5年前 评论

@纳兰无羁 执行 php artisan gps:install会自动帮你把数据表迁移到数据库中。

5年前 评论

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'startupscampfire.scamp_navigations' doesn't exist (SQL: select * from scamp_navigations where scamp_navigations.deleted_at is null)
就没有这个表吗

5年前 评论

@yeahai1990 我这没用到这个表呀,是不是你配置错了什么?麻烦截图一下更详细的报错信息

5年前 评论

@DavidNineRoc 执行了php artisan gps:install 但报错

file新手请指教

5年前 评论

@纳兰无羁 你的配置文件没有写好吧?看一下 .env 有关数据库的配置是否填写完整

5年前 评论

@DavidNineRoc 你这后台密码是多少啊?密码用什么加密的啊?

5年前 评论

@纳兰无羁 加密使用的是laravel自带的加密模块,内部使用的就是 hash 加点盐。至于密码就在这里。

file

5年前 评论

运行php artisan gps:install命令,过一会卡在了
\App\Mail\UseRegister ,应该是我没有配置队列消息的原因吧。

4年前 评论

@HectorChan 队列默认用的是数据库的,\App\Mail\UseRegister 这个是注册成功默认发送一封邮件,可能是你的邮箱配置没有配置好。一直卡住没事的,其实卡住是因为在监听队列,当有新任务来了他就会执行了

4年前 评论
猴子真的会偷桃

发现了两个问题(在安装时候):

1、composer install 时候报错doctrine/instantiator需要php7.1,但是composer.json里面没发现这个package,删除composer.lock后重新composer install 好了。建议@DavidNineRoc 在项目git或者zip包里直接把composer.lock删掉

2、php artisan gps:install是报错

file

原因是

file

继承的Model已经被Model文件继承了,所以不必在自行继承 Illuminate\Database\Eloquent\Model;把图中几个model文件中的
use Illuminate\Database\Eloquent\Model;注释掉就好。php artisan gps:install就不会报错了

感谢@DavidNineRoc 的无私奉献,加油,我要伴你左右,哈哈哈

4年前 评论
猴子真的会偷桃

@DavidNineRoc 大神,我稍稍改造了一下代码,把图片什么的都显示出来了,能说吗?

4年前 评论

@猴子真的会偷桃 谢谢你的提醒,已经修改:smile:

4年前 评论

file
这句话的意思我不是很明白,望能详解,图片一开始不能显示吗?

4年前 评论
猴子真的会偷桃

@DavidNineRoc 我这里刚开始的图片是不显示的,Linux上,然后我看了一下图片路径是/storage/uploads/products/list/xxx.jpg,但是在项目中storage下面没有uploads这个文件夹,图片文件都在storage下面的app/resources/products下面,这样的话我们页面的图片是404的。并且一般情况下,uploads这个文件夹,应该放在public目录下(laravel的项目入口文件就在public下,所以基本上公共资源都会存放在public下,storage仅仅是缓存文件夹),所以我把图片按照目录都放在了public/uploads/products/list/xxx.jpg,然后代码里,ProductPresenters这个类下的getThumbLink(下图红色注释掉,改为绿色)方法修改了一下,然后图片显示正常了

file

但是我又发现另外一个问题,就是注册并且登陆成功之后,产品的详情页会乱,这个我还没有来的及看

4年前 评论

@猴子真的会偷桃

file

file

file

file

file
我这图片都是有的,可能你的php artisan gps:copy可能出现了错误,你可单独运行这条命令看一下。代码应该是不用改的。

4年前 评论
猴子真的会偷桃

@DavidNineRoc 嗯,我试试看

4年前 评论
猴子真的会偷桃

@DavidNineRoc 请问一下,项目入口文件在public下面,然后storage下面是怎么访问到的??我直接打链接也访问不到啊
file

这是新上传的图片路径(后台商品图片上传)
但事实上图片路径是(这是服务器上的文件路径)

file

访问报错404

4年前 评论

把 public/storage 删除了,重新执行php artisan storage:link生成软链接

4年前 评论
猴子真的会偷桃

@DavidNineRoc 大神、后台页面的评论管理和系统管理没有吗??点开都是404

4年前 评论

@猴子真的会偷桃 是的,很多功能都没有的 :flushed:

4年前 评论
猴子真的会偷桃

@DavidNineRoc 好吧、我还寻思点点设置看看呢:joy:

4年前 评论

感觉还是很不错的 支持你一下

4年前 评论

@xflyhack 谢谢,工作繁忙,没有余力写代码,只是有空看看社区:relaxed:

4年前 评论

希望作者能够单独出个 Laravel-PaysApi 的库 :blush:

4年前 评论

@AGD 其实 demo 已经很简单了,今天有时间捣鼓,折腾一下。

4年前 评论

@AGD https://github.com/DavidNineRoc/laravel-pa... 忙活了一整天,终于写好了。不过需要更多的测试,

4年前 评论

@DavidNineRoc 辛苦了!:smile: 其实这项目第一个 star 就是我的,从早关注到晚呢,现在项目尝试用这个接入一下。

4年前 评论
Migrated:  2017_11_20_122310_create_payments_table
Seeding: UsersTableSeeder
Seeding: AdminsTableSeeder
Seeding: CategoriesTableSeeder
Seeding: ProductsTableSeeder
Seeding: JobsTableSeeder 99 %
Seeding: RolesTableSeeder
Seeding: PermissionsTableSeeder
Seeding: PermissionsRolesTableSeeder
Seeding: LikesProductsTableSeeder
Seeding: CarsTableSeeder
Seeding: ProvincesTableSeeder
Seeding: CitiesTableSeeder
Seeding: AdminsRoleTableSeeder
copy file success
The [public/storage] directory has been linked.
queue starting please don`t close cmd windows!!!
[2018-02-14 12:07:23] Processing: App\Jobs\InstallShopWar
[2018-02-14 12:07:23] Processed:  App\Jobs\InstallShopWar
[2018-02-14 12:07:23] Processing: App\Mail\UserRegister
[2018-02-14 12:07:25] Processing: App\Mail\UserRegister
[2018-02-14 12:07:25] Processing: App\Mail\UserRegister
[2018-02-14 12:07:25] Failed:     App\Mail\UserRegister
 一直停留在这
4年前 评论

@datou 这个没事的,是 laravel 的监听队列。因为一些耗时间的操作,比如发送邮件都是通过队列发送的。所以我选择的是,安装完之后马上启动队列。
如果是 linux ,可以自己把这个加入后台运行。

4年前 评论

虽然上面的出错了 最后还是进入了系统 ,搞得不错

4年前 评论

@DavidNineRoc 你的编码格式不错 ,看来 要向你们学习啦

4年前 评论

@datou 还记得刚开始时多个参数该怎么写美观,然后找了好久,看到 laravel 源码有个地方写的很好看,现在也慢慢习惯参数多的换行了(●°u°●)​ 」

4年前 评论

file 请问laravel怎么知道 有某个权限(name 值为中文) ,例如 添加管理员、修改管理员

4年前 评论

@datou 看一下数据库填充文件,因为没有太多逻辑。权限我是直接填充进去的。

file
当然你也完全可以配置成动态的,因为这完全是可配置的。

4年前 评论

@DavidNineRoc

file

php artisan gps:install 出错,怎么破

4年前 评论

@YUMI_Ho 是不是系统权限不足,最后一步是php artisan storage:link你手动执行试试

4年前 评论

@DavidNineRoc
我用管理员打开就可以了,非常感谢

4年前 评论

file

emmm,嗨大神,所以像这样一直停留在这,该咋办?直接关掉吗?我是windows安装。

初学Laravel,纯小白~打算拿你的作品改一改,当毕设交可以吗?

嘻嘻嘻

4年前 评论

@Faruieute 可以关掉的,现在是监听队列,是为了当有用户注册把发送邮件放到队列中。因为发送邮件太消耗时间了

4年前 评论

@DavidNineRoc 哇塞,大神还秒回 :joy: 受宠若惊。 好哒,那我关掉了,因为我已经看到数据库里有表了。

一共这么多个表对吗?

file

4年前 评论

@Faruieute 下班前看了一眼社区,是的,具体的表信息可以查看 /database/migrations 文件夹

4年前 评论

Warning: require(D:\AppServ\www\anli\shop\public/../vendor/autoload.php): failed to open stream: No such file or directory in D:\AppServ\www\anli\shop\public\index.php on line 24

Fatal error: require(): Failed opening required 'D:\AppServ\www\anli\shop\public/../vendor/autoload.php' (include_path='.;C:\php\pear') in D:\AppServ\www\anli\shop\public\index.php on line 24

4年前 评论

你的这件文件在哪里的??

4年前 评论

@yangyang2018 先执行 composer install

4年前 评论

@DavidNineRoc composer 报错,我用laravel5.4,版本不兼容吗?

file

4年前 评论

@yangyang2018 这个是 PHP 版本太低,你的只有 5.6,

4年前 评论

我升级php7.0,laravel5.4会不会不支持?

4年前 评论

@yangyang2018 截图 bootstrap/app.php 代码出来

4年前 评论

file
刚刚的问题我已经处理,现在出现在这个问题,怎么处理?

4年前 评论

@yangyang2018 把你 QQ 私信发给我,我远程看一下。

4年前 评论

支付完毕后,没有回调

4年前 评论

@Alex331349470 你的支付账号配置信息填写了吗?

4年前 评论

请问怎么导入数据库啊

4年前 评论

@DavidNineRoc 是看了,但是还是没整明白啊。有数据库直接倒好了能用的么....

4年前 评论

@zhoujiangji 这个你去复习一下 Laravel 的数据库迁移

4年前 评论

告诉你一个坏消息,你的调试信息没有关闭,数据库报错(拒绝链接),所有的ENV配置信息都打印出来了~

4年前 评论

@刚刚欧巴
demo 是托管在 coding 的,我六个月之前改的。那会正是 coding 动态 pages 升级。也不知道为什么没有生效。
file

4年前 评论

@DavidNineRoc 注册的激活邮件是通过队列的方式发送的,触发的条件是CLI模式,在邮件的发送模板中你直接使用{{ url('register/active') }} 得到的地址没有包括域名信息,而是localhost。

4年前 评论

@刚刚欧巴 这个需要你自己修改 .env 文件里的 APP_URL 对应你的域名

4年前 评论

给你点赞,我找到你不是因为先看到你的商城,是因为我把我的用户id减1,然后就看到了你的信息,正好下载你的源码哈

4年前 评论

大哥,你这个商城的静态源码哪里有吗

4年前 评论

请问可以用作商业用途吗

4年前 评论

@hangyi007 当然可以,用以学习比较好, 有潜在 bug 多,不建议使用。建议使用成熟的 CMS

4年前 评论

file
这是什么问题

4年前 评论

@wedwed123 数据库连接是否配置好

4年前 评论

整体功能挺全。但是界面有点丑。。。。 一看就是程序自己构想的。 没有设计参与。

4年前 评论

能够假装购买吗?我想试试评论功能

3年前 评论
猪猪

后台,用admin登录不进去,提示没有用户或密码错误,还有为什么路由里面没有后台的路由,很想在后台里面发布点东西,看看前台的变化

3年前 评论

@chenzhulin 后台用户数据库信息查看 /database/seed/AdminTablesSeeder.php 文件,后台路由文件在 /app/Admin/routes.php 文件

3年前 评论

@wedwed123 https://github.com/DavidNineRoc/monday-sho... 自己部署一套,然后使用支付宝开发账号即可

3年前 评论
猪猪

@DavidNineRoc 谢谢

3年前 评论

用php artisan ser测试 登陆注册时都会
The page has expired due to inactivity.
Please refresh and try again.

请问怎么破

3年前 评论

@wuxingjian 请查看本地的session是否配置正确.

3年前 评论

@DavidNineRoc 没太懂 是说laravel的配置还是说这个项目的配置

3年前 评论

@wuxingjian 如果已经按照了项目 readme.md 文件做了还出问题,直接到 github issues, lc 实在是太卡了,我打字都卡

3年前 评论

麻烦博主给一个激活的用户试试功能

3年前 评论

@stone1234 自己注册一个即可

3年前 评论

@DavidNineRoc 是的,但是需要激活

3年前 评论

@stone1234 你填写自己的邮箱即可,会有一个激活连接发送给你

3年前 评论

@DavidNineRoc 系统配置是否有问题,并没有收到邮件

3年前 评论

@stone1234
是邮件白名单的问题,添加即可解决
file

3年前 评论

@DavidNineRoc 博主你好,可以加QQ好友吗

3年前 评论
猪猪

@DavidNineRoc 大佬请问你后台的新增商品的那个缩略图是怎么弄的

3年前 评论

@猪猪 自行参考 laravel-admin

3年前 评论
猪猪

@DavidNineRoc 好的谢谢啦

3年前 评论

file :joy: :joy: 被谁改了吧

2年前 评论

@airy 感谢,已处理

2年前 评论
猪猪

支持商户入职嘛?

2年前 评论
猪猪

执行php artisan gps:install 提示 There are no commands defined in the "gps" namespace.

2年前 评论

@猪猪 单商户后台, github 最新的文档使用 php artisan moon:install

2年前 评论

Failed to parse address ":" [tcp://:]进不去主页这是为啥啊

2年前 评论

@yjzhou 提供截图, 还有错误日志; 可能是你的 redis 没有配置

2年前 评论

file,是redis没配置吗

2年前 评论

发现问题了,就是redis没配置,线下不会搞,就搞了个线上的

2年前 评论

依赖好像没更新,laravel8安装不上

1年前 评论

@sz940910 和laravel几没关系, 商城本身就是一个项目

1年前 评论
sz940910 1年前
seth-shi (作者) (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!