[开源项目] 星期一商城。用 Laravel 写了个商城,哈哈
当然不是大商城,小商城都不算,啊哈 :smirk:
还是 get 到很多技能, 在 windows 下做了订阅推送。用的 windows 相比 linux 蹩脚的定时任务。啊哈。
WaitMoonMan/monday-shop
Feture
- 第三方登录
- Github
- 微博
- 购物车使用 H5 本地存储 + 数据库持久化存储
- 商品搜索支持拼音首字母 + AJAX 无刷新显示
- 订阅之后每周推送一封邮件包含最受欢迎,最新,最火卖商品的信息
- 响应式网站
Installation
- 获取源代码
- 直接下载压缩包或者monday-shop.zip下载
- 或者
git
克隆源代码git clone git@github.com:davidnineroc/monday-shop.git master
- 安装依赖扩展包
composer install
- 生成配置文件(修改其中的配置选项:数据库的一定要修改)
cp .env.example .env
- 使用安装命令(会执行执行数据库迁移,填充,监听队列 !!! 不需要再监听队列,此命令已包含)
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
今天完善了权限控制,可能和常规的有点不一样(我也不知道常规的啥样 ^_^)
- 在
laravel-permission
基础的表上加了一个route
字段, - 填充数据的时候,顺便把需要权限控制的路由填充上。
- 中间件中: 先获取当前
URL
的路由名字 --> 通过路由名字查找权限名字 -> 然后判断当前用户是否拥有此权限有空的朋友也可以提pr给我,我合并一下。
后台地址: /admin
账号:admin
密码:admin
源码地址 https://github.com/DavidNineRoc/monday-sho...
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer
于 7年前 加精
厉害厉害,下载下来好好学习一下
@Complicated 不足的地方还得指教
不错 :+1:
@ElfSundae 已加入肯德基套餐,今晚准备享用
设计是自己做的?
@XuDing 偷偷的说, 都是模板 :flushed:
Run php artisan gps:install
Show error
[PDOException]
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
@newbie2005 外键的问题吧,把你的 默认 mysql 引擎换成 InnoDB
Failed App/Mail/UserRegister 卡到这里不动了.得不到upload这个文件夹
@过江的桥
是先 copy 静态资源的,然后会执行队列。
Failed App/Mail/UserRegister
这个错误是因为邮件发送失败,你需要配置一下 .env 的邮件配置信息这个不是卡主, 是
laravel
在等待队列执行,你可以注册账号,他就会产生队列。刚才看了一下 觉得很棒呀,我膜拜所有大神!作为新入门的菜鸟,打算有时间好好研究一下,很感谢您的分享哈
@xylovevae smile: 视频播放不了,可能是因为被禁止了, 因为商品的详情数据是从一个
json
文件解析出来的,里面的图片,视频都是写死的固定链接。其中可能会有一些链接是打不开的。@施国鹏 嗯嗯:smile:
东西太贵了
@KevinYang 哈哈 :relaxed: 不要在意这些细节。
就算是测试 放在外网的东西还是关掉debug好点 不然会暴露很多东西的(虽然不一定重要)
报个bug 微博登录 => 取消
@rookie0 谢谢提醒,已关闭。 微博登录 bug 授权失败可能是因为应用没审核过关, 能否说一下具体的错误?现在我的账号是可以成功了。
点击到微博登录界面 但是取消登录 应该是没做回调的错误处理
错误URL http://shop.shiguopeng.cn/auth/weibo/callb...
@rookie0 现在暂时做捕获异常然后跳转到登录页处理。
用的是 ping++?
@阿四大四大 用的是 paysapi ,
请问你是怎么处理库存的,应该在哪一个环节对商品库存进行扣减?
@hezhizheng 单个商品购买下单和加入购物车的时候。
我发现好像后台的权限管理貌似有点问题
@yxhsea 的确是有问题的,当时想是作为理解,然后发现时间不够了,就没有做完。
某p是哪个请问
@lukedever paysapi
我拿着你的源码改一改接项目赚钱 看你怎么办
@xingchen 他也没办法只能选择原谅你
咦 打不开了。
@xingchen 没辙。。。。
@xhh110 当然是选择
@当燃 服务器换成 linux 还没布置过来
老铁 数据库有吗?
@何夕 看一下 readme,
laravel
程序中使用的是数据库迁移,在执行了php artisan gps:install
之后会自动为你生成数据表,和填充数据库@施国鹏 laravel新手,很多不知道,受教了
为啥感觉反应有点慢
@wlaravel 可能是因为有些图片是通过 faker 填充的,导致加载的时候需要时间, 当然你如果愿意,可以页面静态话一下
安装那个依赖扩展包提示我的PHP版本不是7.0的但是我版本已经换了啊
@晚修 请把错误消息贴出来一下
@施国鹏
你的 PHP 版本是 5.6 的,你服务器上安装了多个 PHP 版本吧,你可以
php -v
看一下@DavidNineRoc 额 看过了显示是7.0.12版本的...
@晚修 如果 PHP 5.6 不重要的话,建议你把它卸载了然后再试试
@DavidNineRoc 额 我刚试别的也是 提示我版本不对...
@晚修 就是你版本的问题吧,你可以尝试 yum remove php5.6 ,
@DavidNineRoc 不是很会用哪个yum .... 我再想想办法把. 卸载了重新装太多数据麻烦 -.-
@DavidNineRoc
图片显示不存怎么办? 执行了php artisan storage:link命令页不行
不错
@chun
php artisan gps:copy
复制静态资源文件@chinalorin thanks, 好久没更新了,也不知道什么时候才有空继续弄 :satisfied:
@alber1986 界面是国外的一个HTML模板,然后修修补补一些,喜欢这个模板的,下载链接在这里。


链接写错了 __ 版本
求大神指导
大神 不好意思啊 ini 中 有个东西没开 解决了
@晚修 :grinning:
大神我又来了
@晚修 文件已经存在,先把 public/storage 删除再执行
@THO_MAS 只有订单列表用户中心看订单,至于更复杂的操作,就没写了,当时是毕业设计一个月前写的,当毕业设计交了。最近公司也忙,自己也看一些其他的,就没有增加新功能。
商品的属性可以设置成两种或者两种以上呢
@魏文豪 当然可以设置呀,种类相同的属性,不同的属性值
安装的时候队列等待了快一个小时了,没有提示错误,是不是需要把数据库清了再装?
楼主有没有数据库啊?我想把这个搭起来看看,感谢分享
@laopan1234 安装的时候,会一直处在队列监听的状态,你可以直接关闭,但是之后的邮件发送会存在队列数据库中,不会发送,你需要手动处理队列
@纳兰无羁 执行
php artisan gps:install
会自动帮你把数据表迁移到数据库中。@DavidNineRoc 好的 谢了
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'startupscampfire.scamp_navigations' doesn't exist (SQL: select * from
scamp_navigations
wherescamp_navigations
.deleted_at
is null)就没有这个表吗
@yeahai1990 我这没用到这个表呀,是不是你配置错了什么?麻烦截图一下更详细的报错信息
@DavidNineRoc 执行了php artisan gps:install 但报错
@纳兰无羁 你的配置文件没有写好吧?看一下 .env 有关数据库的配置是否填写完整
@DavidNineRoc 弄好了 谢谢
@DavidNineRoc 你这后台密码是多少啊?密码用什么加密的啊?
@纳兰无羁 加密使用的是
laravel
自带的加密模块,内部使用的就是 hash 加点盐。至于密码就在这里。@DavidNineRoc 好的 谢了
666
运行php artisan gps:install命令,过一会卡在了
\App\Mail\UseRegister ,应该是我没有配置队列消息的原因吧。
@HectorChan 队列默认用的是数据库的,\App\Mail\UseRegister 这个是注册成功默认发送一封邮件,可能是你的邮箱配置没有配置好。一直卡住没事的,其实卡住是因为在监听队列,当有新任务来了他就会执行了
@DavidNineRoc 嗯,我在试试。
发现了两个问题(在安装时候):
1、composer install 时候报错doctrine/instantiator需要php7.1,但是composer.json里面没发现这个package,删除composer.lock后重新composer install 好了。建议@DavidNineRoc 在项目git或者zip包里直接把composer.lock删掉
2、php artisan gps:install是报错
原因是
继承的Model已经被Model文件继承了,所以不必在自行继承 Illuminate\Database\Eloquent\Model;把图中几个model文件中的
use Illuminate\Database\Eloquent\Model;注释掉就好。php artisan gps:install就不会报错了
感谢@DavidNineRoc 的无私奉献,加油,我要伴你左右,哈哈哈
@DavidNineRoc 大神,我稍稍改造了一下代码,把图片什么的都显示出来了,能说吗?
@猴子真的会偷桃 谢谢你的提醒,已经修改:smile:
这句话的意思我不是很明白,望能详解,图片一开始不能显示吗?
@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(下图红色注释掉,改为绿色)方法修改了一下,然后图片显示正常了
但是我又发现另外一个问题,就是注册并且登陆成功之后,产品的详情页会乱,这个我还没有来的及看
@猴子真的会偷桃
我这图片都是有的,可能你的
php artisan gps:copy
可能出现了错误,你可单独运行这条命令看一下。代码应该是不用改的。@DavidNineRoc 嗯,我试试看
@DavidNineRoc 请问一下,项目入口文件在public下面,然后storage下面是怎么访问到的??我直接打链接也访问不到啊

这是新上传的图片路径(后台商品图片上传)
但事实上图片路径是(这是服务器上的文件路径)
访问报错404
把 public/storage 删除了,重新执行
php artisan storage:link
生成软链接@DavidNineRoc 大神、后台页面的评论管理和系统管理没有吗??点开都是404
@猴子真的会偷桃 是的,很多功能都没有的 :flushed:
@DavidNineRoc 好吧、我还寻思点点设置看看呢:joy:
感觉还是很不错的 支持你一下
@xflyhack 谢谢,工作繁忙,没有余力写代码,只是有空看看社区:relaxed:
希望作者能够单独出个 Laravel-PaysApi 的库 :blush:
@AGD 其实 demo 已经很简单了,今天有时间捣鼓,折腾一下。
@AGD https://github.com/DavidNineRoc/laravel-pa... 忙活了一整天,终于写好了。不过需要更多的测试,
@DavidNineRoc 辛苦了!:smile: 其实这项目第一个 star 就是我的,从早关注到晚呢,现在项目尝试用这个接入一下。
厉害
Mark
@datou 这个没事的,是 laravel 的监听队列。因为一些耗时间的操作,比如发送邮件都是通过队列发送的。所以我选择的是,安装完之后马上启动队列。
如果是 linux ,可以自己把这个加入后台运行。
虽然上面的出错了 最后还是进入了系统 ,搞得不错
@DavidNineRoc 你的编码格式不错 ,看来 要向你们学习啦
@datou 还记得刚开始时多个参数该怎么写美观,然后找了好久,看到 laravel 源码有个地方写的很好看,现在也慢慢习惯参数多的换行了(●°u°●) 」
@datou 看一下数据库填充文件,因为没有太多逻辑。权限我是直接填充进去的。
当然你也完全可以配置成动态的,因为这完全是可配置的。
@DavidNineRoc en
@DavidNineRoc
php artisan gps:install 出错,怎么破
@YUMI_Ho 是不是系统权限不足,最后一步是
php artisan storage:link
你手动执行试试@DavidNineRoc
我用管理员打开就可以了,非常感谢
emmm,嗨大神,所以像这样一直停留在这,该咋办?直接关掉吗?我是windows安装。
初学Laravel,纯小白~打算拿你的作品改一改,当毕设交可以吗?
嘻嘻嘻
@Faruieute 可以关掉的,现在是监听队列,是为了当有用户注册把发送邮件放到队列中。因为发送邮件太消耗时间了
@DavidNineRoc 哇塞,大神还秒回 :joy: 受宠若惊。 好哒,那我关掉了,因为我已经看到数据库里有表了。
一共这么多个表对吗?
@Faruieute 下班前看了一眼社区,是的,具体的表信息可以查看 /database/migrations 文件夹
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
你的这件文件在哪里的??
@yangyang2018 先执行
composer install
@DavidNineRoc composer 报错,我用laravel5.4,版本不兼容吗?
@yangyang2018 这个是 PHP 版本太低,你的只有 5.6,
我升级php7.0,laravel5.4会不会不支持?
这个报错
@yangyang2018 截图 bootstrap/app.php 代码出来
刚刚的问题我已经处理,现在出现在这个问题,怎么处理?
@yangyang2018 配置好重写规则
@DavidNineRoc 重写规则在哪里配置?
@yangyang2018 把你 QQ 私信发给我,我远程看一下。
支付完毕后,没有回调
@Alex331349470 你的支付账号配置信息填写了吗?
请问怎么导入数据库啊
@zhoujiangji 看 readme 文件
@DavidNineRoc 是看了,但是还是没整明白啊。有数据库直接倒好了能用的么....
@zhoujiangji 这个你去复习一下 Laravel 的数据库迁移
告诉你一个坏消息,你的调试信息没有关闭,数据库报错(拒绝链接),所有的ENV配置信息都打印出来了~
@刚刚欧巴

demo 是托管在 coding 的,我六个月之前改的。那会正是 coding 动态 pages 升级。也不知道为什么没有生效。
@DavidNineRoc 注册的激活邮件是通过队列的方式发送的,触发的条件是CLI模式,在邮件的发送模板中你直接使用{{ url('register/active') }} 得到的地址没有包括域名信息,而是localhost。
@刚刚欧巴 这个需要你自己修改 .env 文件里的 APP_URL 对应你的域名
给你点赞,我找到你不是因为先看到你的商城,是因为我把我的用户id减1,然后就看到了你的信息,正好下载你的源码哈
大哥,你这个商城的静态源码哪里有吗
@surest https://github.com/DavidNineRoc/monday-sho...
请问可以用作商业用途吗
@hangyi007 当然可以,用以学习比较好, 有潜在 bug 多,不建议使用。建议使用成熟的 CMS
这是什么问题
@wedwed123 数据库连接是否配置好
整体功能挺全。但是界面有点丑。。。。 一看就是程序自己构想的。 没有设计参与。
能够假装购买吗?我想试试评论功能
后台,用admin登录不进去,提示没有用户或密码错误,还有为什么路由里面没有后台的路由,很想在后台里面发布点东西,看看前台的变化
@chenzhulin 后台用户数据库信息查看 /database/seed/AdminTablesSeeder.php 文件,后台路由文件在 /app/Admin/routes.php 文件
@wedwed123 https://github.com/DavidNineRoc/monday-sho... 自己部署一套,然后使用支付宝开发账号即可
@DavidNineRoc 谢谢
用php artisan ser测试 登陆注册时都会
The page has expired due to inactivity.
Please refresh and try again.
请问怎么破
@wuxingjian 请查看本地的session是否配置正确.
@DavidNineRoc 没太懂 是说laravel的配置还是说这个项目的配置
@wuxingjian 如果已经按照了项目 readme.md 文件做了还出问题,直接到 github issues, lc 实在是太卡了,我打字都卡
麻烦博主给一个激活的用户试试功能
@stone1234 自己注册一个即可
@DavidNineRoc 是的,但是需要激活
@stone1234 你填写自己的邮箱即可,会有一个激活连接发送给你
@DavidNineRoc 系统配置是否有问题,并没有收到邮件
@stone1234

是邮件白名单的问题,添加即可解决
@DavidNineRoc 博主你好,可以加QQ好友吗
@DavidNineRoc 大佬请问你后台的新增商品的那个缩略图是怎么弄的
@猪猪 自行参考 laravel-admin
@DavidNineRoc 好的谢谢啦
@airy 感谢,已处理
支持商户入职嘛?
执行php artisan gps:install 提示 There are no commands defined in the "gps" namespace.
@猪猪 单商户后台, github 最新的文档使用
php artisan moon:install
Failed to parse address ":" [tcp://:]进不去主页这是为啥啊
@yjzhou 提供截图, 还有错误日志; 可能是你的 redis 没有配置
发现问题了,就是redis没配置,线下不会搞,就搞了个线上的
依赖好像没更新,laravel8安装不上
@sz940910 和laravel几没关系, 商城本身就是一个项目