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

分享 lanceWan ⋅ 于 2016-11-07 12:10:04 ⋅ 最后回复由 lanceWan 2017-01-17 11:51:46 ⋅ 3807 阅读

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

本帖已被设为精华帖!
本帖由 monkey 于 2月前 加精
回复数量: 67
  • 2016-11-08 10:29:11

    有没有兴趣参考一下tita
    :)

  • lanceWan 走得慢,但不后退...
    2016-11-08 10:34:46

    @泽 什么? 没看懂 :flushed:

  • 2016-11-08 10:48:18

    @lanceWan 一个企业管理平台~

  • skywingfs
    2016-11-08 13:59:32

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

  • 墨韵留香
    2016-11-08 15:25:02

    力力加油

    你猜我是谁

  • tablecell
    2016-11-08 20:28:54

    新添加的普通用户 密码在数据库都是保存成 明文的 重置就变成123456 也是明文的

  • lanceWan 走得慢,但不后退...
    2016-11-08 21:35:33

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

  • lanceWan 走得慢,但不后退...
    2016-11-08 21:36:09

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

  • lanceWan 走得慢,但不后退...
    2016-11-08 21:44:16

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

  • tablecell
    2016-11-09 11:16:36

    /login 这个路由在哪里配置的? routes/web.php 没有 routes/admin/* 也没有这个路由

  • lanceWan 走得慢,但不后退...
    2016-11-09 11:18:55

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

  • tablecell
    2016-11-09 11:42:09

    @lanceWan auth 这部分的代码在哪里,或者有没有整个登陆过程的流程

  • lanceWan 走得慢,但不后退...
    2016-11-09 11:47:17

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

  • tablecell
    2016-11-09 12:29:52

    @lanceWan php artisan make:auth 执行以后 页面里的css/js全改了 怎么样把路由/login 显示的页面换成原来  \resources\views\auth\login.blade.php  ?

  • lanceWan 走得慢,但不后退...
    2016-11-09 12:32:48

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

  • tablecell
    2016-11-09 12:43:26

    @lanceWan   /login 路由找不到  怎么给/login 指定对应的页面呢、

  • ruooooooli
    2016-11-09 18:31:47

    用上 vue 嘛!

  • fifi
    2016-11-09 20:22:22

    账号密码不正确。

  • zhuzhichao MOD Lalala Demacian !
    2016-11-10 09:25:51

    系统日志和 log-viewer 很像。

    file

  • lanceWan 走得慢,但不后退...
    2016-11-10 10:57:37

    @ruooooooli Vue 在计划中

  • lanceWan 走得慢,但不后退...
    2016-11-10 10:58:21

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

  • ADKi 框架就是工具,什么好学什么,laravel理念才是未来PHP开发程序该遵循的方...
    2016-11-10 14:55:33

    谢了兄弟

  • semb
    2016-11-12 13:55:23

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

  • lanceWan 走得慢,但不后退...
    2016-11-13 10:42:10

    @semb :sweat:

  • xhh110
    2016-11-13 10:53:07

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

  • lanceWan 走得慢,但不后退...
    2016-11-13 10:56:56

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

  • xhh110
    2016-11-13 11:02:28

    @lanceWan 好的 我去试试。。。

  • mingyun
    2016-11-13 21:30:19

    厉害了

  • hdruner laravel 爱好者
    2016-11-14 14:02:40

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

  • lanceWan 走得慢,但不后退...
    2016-11-14 14:27:20

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

  • lanceWan 走得慢,但不后退...
    2016-11-14 14:44:11

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

  • hdruner laravel 爱好者
    2016-11-15 01:10:11

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

  • hdruner laravel 爱好者
    2016-11-15 01:22:49

    @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了。但是问题依然没有解决

  • hdruner laravel 爱好者
    2016-11-15 02:04:25

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

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

  • hdruner laravel 爱好者
    2016-11-15 02:09:58

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

  • lanceWan 走得慢,但不后退...
    2016-11-15 09:04:58

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

  • 迷河
    2016-11-15 13:47:33

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

  • lanceWan 走得慢,但不后退...
    2016-11-15 13:49:51

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

  • 迷河
    2016-11-15 13:49:58

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

  • 迷河
    2016-11-15 13:50:09

    @lanceWan 第一次啊!

  • 迷河
    2016-11-15 13:50:29

    @lanceWan 嘿嘿

  • 半夏
    2016-11-18 15:01:11

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

  • lanceWan 走得慢,但不后退...
    2016-11-18 16:39:34

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

  • 半夏
    2016-11-18 16:44:17

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

  • 半夏
    2016-11-18 16:45:02
  • lanceWan 走得慢,但不后退...
    2016-11-18 16:56:57

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

  • ADKi 框架就是工具,什么好学什么,laravel理念才是未来PHP开发程序该遵循的方...
    2016-11-21 09:44:10

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

  • lanceWan 走得慢,但不后退...
    2016-11-21 09:46:53

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

  • ADKi 框架就是工具,什么好学什么,laravel理念才是未来PHP开发程序该遵循的方...
    2016-11-21 09:48:13

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

  • lanceWan 走得慢,但不后退...
    2016-11-21 09:53:52

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

  • ADKi 框架就是工具,什么好学什么,laravel理念才是未来PHP开发程序该遵循的方...
    2016-11-21 09:56:32

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

  • lanceWan 走得慢,但不后退...
    2016-11-21 09:58:35

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

  • 任宝宝
    2016-11-30 23:34:15

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

  • lanceWan 走得慢,但不后退...
    2016-12-01 09:11:43

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

  • tlcolorful
    2016-12-12 16:59:21

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

  • lanceWan 走得慢,但不后退...
    2016-12-12 17:02:08

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

  • tlcolorful
    2016-12-12 17:05:08

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

  • lanceWan 走得慢,但不后退...
    2016-12-12 17:07:07

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

  • tlcolorful
    2016-12-12 17:08:56

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

  • lanceWan 走得慢,但不后退...
    2016-12-12 17:11:49

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

  • tlcolorful
    2016-12-12 17:18:44

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

    还是说我的理解有问题?

  • lanceWan 走得慢,但不后退...
    2016-12-12 17:20:42

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

  • tlcolorful
    2016-12-12 17:21:36

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

  • lanceWan 走得慢,但不后退...
    2016-12-12 17:25:51

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

  • tlcolorful
    2016-12-12 17:27:20

    @lanceWan 好的 谢谢

  • Kr科
    2017-01-16 14:47:15

    file
    vue版安装报错了

  • lanceWan 走得慢,但不后退...
    2017-01-17 11:51:46

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

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter