iDashboard-基于 Laravel5.3 的后台管理

iDashboard - Laravel5.3基本的权限管理系统

基于Laravel5.3的后台管理系统,实现最基本的后台框架:权限、角色、菜单、用户、日志功能,后台主题是用的 INSPINIA - Responsive Admin Theme 主题,本人代码完全开源,至于主题只供学习交流。如需商业应用请自行购买授权!



待解决问题

  • 后台验证码图片显示不出来问题(目前注释掉了验证码验证。。)

安装

下载本项目代码到本地:

git clone https://github.com/lanceWan/iDashboard.git

进入到项目然后 composer 安装:

cd iDashboard

composer install

配置 .env 文件:

[sudo]cp .env.example .env

Linux 和 Mac 下注意执行权限 !

配置数据库和日志:

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

# log日志包配置,这里固定这么写(后面考虑去掉)
APP_LOG=daily

迁移数据:

php artisan migrate --seed

OK,项目已经配置完成,直接访问首页然后登录即可,验证码验证已经注释掉,所以大家请暂时无视那个验证码图片显示不出来的问题,不清楚路由的可以直接去看 routes/web.php 文件。默认管理员账号:iwanli , 密码:123456

如果你是在Linux或Mac下配置的请注意相关目录的权限,这里我就不多说了,enjoy!

扩展包

l5-repository 只用了最基本的功能,其他的功能都不想用,强迫症 :smile: ,觉得更少的代码就能实现 。 至于那些 CRUD 一键生成的扩展,看过代码,代码模式不是自己想要的,所以抛弃了。。。

更新计划

Laravel5.2 iAdmin 基础上升级为 Laravel5.3 ,同时优化了很大一部分代码,代码模式更改。本后台打算一直更新下去并持续集成,下面是接下来要添加的功能:

  • 后台首页统计相关信息
  • 系统报错发送邮件(队列发送)
  • 系统配置功能
  • 即时通知
  • Media Manager 资源管理(本地和七牛)
  • 在线 IM 聊天
  • 基于 iDashboard 的个人博客计划
  • 基于 iDashboard 代码将css、js用 Laravel Elixir 管理。Blade视图与 Vuejs2.0 结合管理

OK,这是目前想要完善的地方,可能冒出其他的灵感。待续...

源码地址

githubhttps://github.com/lanceWan/iDashboard

osChina : https://git.oschina.net/iwl/iDashboard

本帖已被设为精华帖!
本帖由系统于 7年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 72

有没有兴趣参考一下tita )

7年前 评论

@泽 什么? 没看懂 :flushed:

7年前 评论

@lanceWan 一个企业管理平台~

7年前 评论

功能是越来越强大了啊,必须支持下~~

7年前 评论

力力加油

你猜我是谁

7年前 评论

@tablecell 添加用户那块我好想忘了改逻辑了。。。。。不好意思 我马上改过来,忘了加密了 :bowtie:

7年前 评论

@墨韵留香 我怎么知道你是谁。。。。 只知道是群里面的 :laughing:

7年前 评论

@tablecell OK了,问题已经修复了。已经更新到了github和osChina上,非常感谢反馈!

7年前 评论

@tablecell /login 的路由是用 php artisan make:auth 默认生成的路由, routes/admin/* 是菜单高亮用的 不是路由

7年前 评论

@tablecell ... auth 是Laravel已经继写好的开箱即用功能,你要看只能去看官方文档和Laravel里面的登录源码了

7年前 评论

@tablecell 对的 直接修改这个也可以 还有一种办法就是指定login页面的视图

7年前 评论
ruolis

用上 vue 嘛!

7年前 评论

账号密码不正确。

7年前 评论

系统日志和 log-viewer 很像。

file

7年前 评论

@zhuzhichao 就是用那个扩展,我上面也说了的。只是改了一下页面更适合主题,然后添加了权限控制

7年前 评论
DukeAnn

谢了兄弟

7年前 评论

力力加油!!!!!!!! 你猜猜我是谁

7年前 评论
幽弥狂

如果有无权限的模块隐藏就好了+_+ 那就完美的不要不要的了

7年前 评论

@xhh110 昨天更新了,没有权限的话左侧菜单是看不到了。

7年前 评论
幽弥狂

@lanceWan 好的 我去试试。。。

7年前 评论

TokenMismatchException in VerifyCsrfToken.php line 68:
楼主我按你的步骤去操作,然后输入账号和密码后出现这个错误

7年前 评论

@hdruner 有几个人也是这样报错,我自己安装的时候不会出现。现在都没法调试。。。

7年前 评论

@hdruner 我google了一下,官方的Issue中也有很相同的问题。都是token不存在,目前找到的方法:

7年前 评论

您需要打开app/Http/Kernel.php并注释掉\App\Http\Middleware\VerifyCsrfToken::class
我通过上面的方法暂时解决了错误,但是我输入密码登陆后会无限重定向到登陆页面。。

7年前 评论

@lanceWan
我确认了我的session文件是可写入的,然后删除了storage里面的session文件
刷新页面,发现一个新的session文件,打开对比发现_token value是匹配的。session文件如下

a:4:{s:6:"_token";s:40:"2OSNdH1OAngddXxBIiO52jjty5wrnUI8fDM0okxw";s:9:"_previous";a:1:{s:3:"url";s:27:"http://localhost:8899/login";}s:9:"_sf2_meta";a:3:{s:1:"u";i:1479143789;s:1:"c";i:1479143789;s:1:"l";s:1:"0";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}

其中我也把.evn里面的APP_URL 改成 http://localhost:8899 我应用的url了。但是问题依然没有解决

7年前 评论

@lanceWan
我进入到错误抛出的文件 /Users/hedongrun/Project/test/iDashboard/bootstrap/cache/compiled.php

找到了tokensMatch()这个方法,通过打印发现input的_token值和session()里面的_token值的确不一样,不过我尚未清楚是什么导致的。我通过简单的方法跳过了一个验证,但是又有了新的错误抛出

7年前 评论

@lanceWan 新的错误提示如下
Class guest does not exist
我明天在再安装一个laravel5.3校验一下是不是我的环境导致了一系列的问题

7年前 评论

@hdruner 我google到很多人跟你一样,有的电脑可以,有的电脑不行,具体解决办法基本上没找到。这个官方估计会在下一版本解决吧

7年前 评论

没有sql文件啊..我还要去猜你用什么字段了么/= =..

7年前 评论

@迷河 :disappointed_relieved: 你用过Laravel没? 你这个问题我很尴尬。。。

7年前 评论

@迷河 好像找到了。。在migrations里。。我要研究一下。。

7年前 评论

我也登陆不进去,老是报TokenMismatchException 错误 。然后测试了一下,发现为什么session存储不了?

7年前 评论

@半夏 存储不了确定一下你的目录权限

7年前 评论

session的目录权限是可写的啊 感觉问题好像是_token值每次刷新都变化 所以session存储不了 这是为什么啊 我发现5.1不会有这个问题,试了5.3的源码也是这样的?

7年前 评论

@半夏 这个奇怪的问题很多人和你一样, 不知道是电脑原因还是什么环境影响了。目前我再官方的issue中还没看到解决办法。。。。。

7年前 评论
DukeAnn

看了看代码,受益匪浅,能问几个问题吗?
为什么自带的几个控制层 ,都是依赖注入了service呢,为什么不直接写在controller里面呢。
还有用这个l5-repository扩展的好处在哪里呢。

7年前 评论

@ADKi 这个我是根据项目复杂度来的,我们公司项目这样写会很好维护和扩展,如果项目结构简单不必要这么写。我只是习惯这样写了,所以用5.3的时候来练手而已。。。

7年前 评论
DukeAnn

那l5-repository扩展的好处 的好处呢,我看模型层都继承这个

7年前 评论

@ADKi 这个扩展封装了很多常用的方法,比如数据库的增删改查,不需要你去重复的定义所有仓库都适用这些,避免多人协作的时候很有用。毕竟规范、代码都一样,出错也少了很多

7年前 评论
DukeAnn

再问一下,是不是跟laravel 自带的Eloquent ORM 类似

7年前 评论

实质上就是用ORM封装的方法而已

7年前 评论

希望我这段留言可以鼓励你继续前进,怎么说呢,看了你的博客和github然后找到你在优酷的1-9教学视频,然后看完再去bilibili看你剩下的,给点意见呢就是视频可以表达得更加流畅一点,不过看完觉得贵在实在,仔细和扫盲,有真正站在一个入门人的角度去讲,所以我觉很好。而美中不足就是视频可以再表达得好一点,可以看看laravist.com的作者的视频,看完有留意到视频的评论和关注,有关注但却没有什么评论,我可以在这里大胆的告诉你,你的视频是很多人看的,希望你可以继续做下去,谢谢!:grimacing:

7年前 评论

@任宝宝 哈哈,谢谢建议。这是第一次讲,本人也比较内向,所以表达上面不流畅。我还在慢慢适应中,最近也参照别人的视频做了一些改进。有你们支持我会坚持下去的~~

7年前 评论

如果更换了ORM,哪些地方要修改?
我看service 注入的是Eloquent,那以后这些service都要改一遍吗?

7年前 评论

@tlcolorful 为什么要都改一边? 你改ORM改的是Model吧,只要将model换掉不就行了吗

7年前 评论

那app/Repositories下 单独弄一个Eloquent是什么意义呢?
我认为的是service应该注入app/Repositories/Contracts

7年前 评论

@tlcolorful 简单项目这样写肯定是多余的, 我只是为了保持我的代码风格还是加了一层。你觉得不好的话可以按照你的想法来就行了

7年前 评论

@lanceWan 没有,就是不明白,没有不喜欢的意思。请解说一下 谢谢啊

7年前 评论

@tlcolorful 我将逻辑处理和数据库操作分开了,现在service里面只从所有的repository中拿数据然后进行相关逻辑判断。而repository只负责从数据库里面读写数据和特殊处理一些数据。比如一些int类型要转换成字符串,json类型转换成数组等等

7年前 评论

@lanceWan 在Repositories文件夹下加入Eloquent,Contracts等文件夹,是不是以后新的orm建立一个新的文件夹,然后实现Contracts里面的东西?那么在service依赖注入的应该是Contracts,然后在服务提供者进行捆绑?

还是说我的理解有问题?

7年前 评论

@tlcolorful 我并没有用Laravel的服务模式,用的是PHP本身的依赖注入

7年前 评论

@lanceWan 我表达的这个思想有问题吗? 还是像你说的,更换ORM替换model层就可以了,这些地方都不用改的。

7年前 评论

@tlcolorful 更换model只用在Eloquentd的repository里面更改里面的 model() 方法的class就行了

7年前 评论

file
vue版安装报错了

7年前 评论

@Kr科 前端node方面我真的无能为力。。。。。 只能靠你自己了

7年前 评论

file
这个类是在哪里载入的哦,我查看了从route——>controller——>service都没有看到引入的,在控制器中测试发现应该是在views里面引入的,但是又找不到哦!

7年前 评论

@Kr科 这个是composer视图共享全局数据,你看文档就知道了

7年前 评论

是否支持Laravel5.4?

6年前 评论

@MZ07 不支持,这个是5.3版本的

6年前 评论

file

composer install 出错了~ 难道是我镜像源有问题?

6年前 评论

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