# resharedblog **Repository Path**: reshared/resharedblog ## Basic Information - **Project Name**: resharedblog - **Description**: 博客开做 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-04-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #Reshared 健康图片 动态网 这只是一个简单的博客系统,没什么特别的东西,基于Laravel,套用模板,在此感谢! ##一些准备工作 设计一下数据库: 数据库: resharedblog 表前缀: rdbg_ 数据表: 用户表: users, 管理员表: admins, 内容表: contents, 导航栏表: categories, 网站设置表: settings, 标签表: tags, 标签绑定表: tag_blinds, 角色表: roles, 权限表: powers, 管理操作日志表: admin_log, 爬虫表: spiders, 爬虫日志表: spider_log, 公告表: announces, 内容数据统计表: content_counts, 用户统计表: user_counts, 网站统计表: site_counts, 管理员统计表: admin_counts, 标签统计表: tag_counts, 用户等级表: user_levels, 用户积分策略: credits_rules, 用户积分日志表: credits_log, 内容评论表: comments, 点赞表: likes, 相册表: albums, 图片表: pictures, 动态表: trends ###管理员统计表: admin_counts admin_id: 管理员给ID content_count: 历史发布内容量 today_content_count: 今日发布内容量 ###管理操作日志表: admin_log admin_log_id: 主键 admin_id: 管理员ID admin_name: 管理员姓名 action: 操作 url: 对象url created_at: 创建时间 updated_at: 更新时间 ###管理员表: admins admin_id: 主键 role_id: 角色ID role_name: 角色名称 penname: 笔名 realname: 真实姓名 sex: 性别0->未知 1->男 2->女 password: 密码 email: 邮箱 phone: 手机号 avatar: 头像 status: 管理员状态0->锁定 1->正常 attempts: 尝试登录次数 created_at: 创建时间 updated_at: 更新时间 last_login_at: 上次登录时间 last_action_at: 上次操作后台时间 ###相册表: albums album_id: 相册ID user_id: 用户ID user_name: 用户名 name: 相册名 public: 是否公开 0->不公开 1->公开 count: 包含图片数 created_at: 创建时间 updated_at: 更新时间 deleted_at: 软删除时间 ###公告表: announces announce_id: 主键 title: 标题 admin_id: 发布管理员ID admin_realname: 发布管理员笔名 style: 标题样式 加粗|倾斜|下划线|颜色 type: 公告类型0->url 1->内容 content: 公告内容, 或许是内容, 或许是url start_at: 有效开始时间 end_at: 自动失效时间 created_at: 创建时间 updated_at: 有效时间 deleted_at: 软删除时间 ###导航栏表: categories category_id: 主键 name: 栏目名称 allow_levels: 可观看的用户等级 in_nav: 在导航栏显示 order: 排序 in_use: 是否可用 0->不可用 1->可用 jump_url: 跳转链接 无 则非跳转 created_at: 创建时间 updated_at: 更新时间 deleted_at: 软删除时间 ###内容评论表: comments comment_id: 主键 content_id: 内容ID user_id: 用户ID order: 排序 content: 评论内容 created_at: 创建时间 updated_at: 更新时间 ###内容数据统计表: content_counts content_id: 内容ID click_count: 历史浏览量 today_click_count: 今日浏览量 comment_count: 历史评论量 today_comment_count: 今日评论数 ###内容表: contents content_id: 主键 user_id: 用户ID admin_id: 管理员ID category_id: 栏目ID username: 发布者姓名 order: 排序 style: 标题样式 加粗|倾斜|下划线|颜色 thumb: 缩略图 subject: 标题 content: 内容 created_at: 发布时间 updated_at: 更新时间 deleted_at: 软删除时间 ###用户积分日志表: credits_log credit_log_id: 主键 user_id: 用户ID rule_id: 策略ID rule_name: 策略名称 cycle_times: 已执行次数 history_times: 历史执行次数 credits: 历史增加积分数 created_at: 创建时间 updated_at: 更新时间 ###用户积分策略: credits_rules rule_id: 主键 name: 策略名称 cycle_type: 循环类型: 0->无限, 1->sec, 2->mon, 3->hor, 4->day, 5->week, 6->mounth, 7->year times: 周期内次数 credits: 增加的积分数 admin_id: 创建管理员ID admin_name: 创建管理员名称 created_at: 创建时间 updated_at: 更新时间 deleted_at: 软删除时间 ###点赞表: likes like_id: 主键 item_type: 对象类型: comment content user item_id: 对象ID like_type: 点赞类型:0->取消 1->顶 2->踩 user_id: 用户ID user_name: 用户名 created_at: 创建时间 updated_at: 更新时间 ###图片表: pictures picture_id: 图片ID album_id: 相册ID user_id: 用户ID user_name: 用户名 created_at: 创建时间 deleted_at: 软删除时间 ###权限表: powers power_id: 主键 power_name: 权限名称 created_at: 创建时间 updated_at: 修改时间 deleted_at: 软删除时间 ###角色表: roles role_id: 主键 role_name: 角色名称 power_ids: 权限IDs json created_at: 创建时间 updated_at: 更新时间 deleted_at: 软删除时间 ###网站设置表: settings skey: 设置名 svalue: 设置值 ###网站统计表: site_counts ckey: 统计类型名称 cvalue: 统计值 ###爬虫日志表: spider_log spider_log_id: 主键 spider_id: 爬虫ID spider_name: 爬虫名称 content_id: 存入的内容ID created_at: 创建时间 ###爬虫表: spiders spider_id: 爬虫ID name: 任务名称 url: 爬取url list: 列表正则 content: 内容正则 status: 状态 created_at: 创建时间 updated_at: 更新时间 ###标签绑定表: tag_blinds tag_id: 标签ID item_id: 对象ID item_type: 对象类型 ###标签统计表: tag_counts tag_id: 标签ID click_count: 历史点击量 today_click_count: 今日点击量 content_count: 包含内容量 today_content_count: 今日新增内容量 ###标签表: tags tag_id: 主键 tag_name: 标签名 created_at: 创建时间 deleted_at: 软删除时间 ###动态表: trends trend_id: 动态ID user_id: 用户ID user_name: 用户名 type: 动态类型 comment setting album picture content update created_at: 创建时间 ###用户统计表: user_counts user_id: 用户ID content_count: 发布内容量 comment_count: 发表评论量 today_content_count: 今日内容量 today_comment_count: 今日评论量 view_count: 浏览内容量 today_view_count: 今日浏览量 trend_count: 动态量 today_trend_count: 今日动态量 ###用户等级表: user_levels level_id: 主键 name: 等级名称 auto_increase: 自动升级 next_level_id: 下一等级 need_credits: 所需积分 created_at: 创建时间 updated_at: 更新时间 ###用户表: users user_id: 主键 nickname: 昵称 emial: 邮箱 realname: 真实姓名 sex: 性别0->未知 1->男 2->女 password: 密码 poster: 主页图片 level_id: 用户等级ID phone: 手机号 avatar: 头像 credits: 用户积分 status: 用户状态0->锁定 1->正常 2->超级 created_at: 创建时间 updated_at: 更新时间 last_login_at: 最后登录时间 ##然后记录下我都干了啥 1 先下载了最新的Laravel, 创建好GIT 2 配置好数据库配置, 如表前缀, 和数据库密码, 数据库名之类的 3 按照数据库设计写迁徙文件migration migration写了好久, 终于写完了, 写完该干点什么了呢~~ 我感觉是先创建Model吧, 然后我在app目录下创建一个Models的文件夹用来放所有的模型 然后创建UserModel, AdminModel, ContentModel, CategoryModel, SettingModel, TagModel, TagBlindModel, RoleModel, PowerModel, AdminLogModel, SpiderModel, SpiderLogModel, AnnounceModel, ContentCountModel, UserCountModel, SiteCountModel, AdminCountModel, TagCountModel, UserLevelModel, CreditsRuleModel, CreditsLogModel, CommentModel, LikeModel, AlbumModel, PictureModel, TrendModel 就是一个表对应一个Model吧. 安全起见, 每个Model文件都写好表名与主键. ###接下来 接下来就是业务逻辑了, 首先将数据库迁徙过来, 执行命令 php artisan migrate 然后先弄Auth, 前后台Auth ###Admin Auth 1\ 创建路由 2\ 创建中间件: 包含设置好kernel里的中间件路由, 创建中间件文件, 编写中间件逻辑 3\ 中间件创建完毕, 然后开始搞路由吧 ### 路由 嗯, 路由分组是很重要的, 清晰的分组可以让看着漂亮多了, 整洁而优雅, 所以创建了路由组: admin, 并以此设置了命名空间为Admin目录; 组内其实还是需要分组的, 比如登录或者静态页面之类的资源是不需要Auth的, 所以区分了一个需登录路由组, 和无需登录的路由组, 并给徐登路路由组加上后台登录验证的中间件, 这样后台登录的逻辑就很清晰了. 然后就做登录吧, 因为有了中间件的限制后, 其他开发都是需要登录身份, 才能浏览的, 也算一个起始吧. 登录路由很简单, 一个无需登录的GET路由 login , 我选用的是异步验证的方式, 所以POST是异步的, 同样的也给异步路由分配一个组, 并创建POST路由 login, 重名了, 无所谓, 反正方法不一样. 绑定到各自对应的控制器之后, 就开始写逻辑, GET Login很简单 就是显示登录界面, 然后 POST Login 就是接受数据, 并做逻辑判断后 返回结果了. 然后登陆搞定了 开始搞仪表盘 ### 仪表盘 我需要先知道系统需要展示什么数据: 我的Log有什么呢? admin log credits log spider log counts 有哪些呢 site_counts tag_counts user_counts admin_counts 嗯, 这些东西需要做数据展示的有: site_counts 各项数值展示 user_counts 用户量统计 admin_counts 管理员统计 内容统计, 访问统计, 注册统计, 用户相关就太多了... 首先需要出现的是, 待办事项提醒: 提醒管理员需审批的或者需查看的信息 当然,更之前是权限的判断, 根据角色判断权限显示菜单的, 所以这个角色和权限的判断, 就得来个中间件了