基于 Laravel + Vue 构建一个带前后台的类似知乎的问答社区

简介

本项目使用 Laravel 5.3 和 Vue 开发,基于 laravist 社区 知乎系列项目,后台模板采用 AdminLTE-For_Laravel。项目代码仓库位于 https://github.com/GeekGhc/zhihu-app

功能特性

用户

  • 登录注册(邮件认证)
  • 用户设置
  • 头像上传至七牛云存储
  • 修改密码
  • 忘记密码(邮件认证)
  • 用户相互关注(邮件提醒)
  • 用户发送私信(消息通知)
  • 显示私信(已读和未读)
  • 标志私信
  • 标志私信全部已读
  • 回复私信
  • 个人主页(各项数据)

问答

  • 问题列表
  • 收藏问题(消息通知)
  • 分享问题到第三方
  • 问题答案评论(消息通知)
  • 问题评论,答案评论(消息通知)
  • 答案点赞
  • 发布问题
  • 修改问题(仅限问题的作者)
  • 删除问题(仅限问题的作者)

后台

  • 系统用户
  • 系统用户资料修改,删除
  • 管理员资料修改
  • 创建问题(可置顶)
  • 编辑问题(对任何用户的问题)
  • 删除问题(对任何用户的问题)
  • 问题评论
  • 删除问题评论(对任何用户的评论)
  • 文章标签
  • 删除文章标签

安装配置

git clone https://github.com/GeekGhc/zhihu-app.git
cd zhihu-app
cp .env.example .env  # 将其中的数据库和第三方服务key改成自己的
composer install  # 安装依赖
php artisan key:generate  # 如果 APP_KEY 未生成的话运行此命令生成
php artisan zhihu:install  # 创建数据表
php artisan create:admin  # 创建管理员

应用截图

前台部分

安装完成后,就可以在浏览器中通过 http://zhihu-app.test(具体域名根据自己的环境为准) 访问前台了:

后台部分

后台入口:http://zhihu-app.test/dashboard

学院君 has written 848 articles

终身学习者,Laravel学院院长

36 thoughts on “基于 Laravel + Vue 构建一个带前后台的类似知乎的问答社区

  1. Piemon says:

    安装好之后,点击发布问题会报错

    ErrorException in QuestionRepository.php line 22:
    Argument 1 passed to App\Repositories\QuestionRepository::normalizeTopics() must be of the type array, null given, called in E:\wamp64\www\zhihu-app\app\Http\Controllers\QuestionsController.php on line 42 and defined

  2. olive says:

    window.UEDITOR_CONFIG.serverUrl = ‘{{ config(‘ueditor.route.name’) }}’ 这个代表什么意思,不能加载,还有上传图片会出现“后端配置项没有正常加载,上传插件不能正常使用!”

  3. 陈回风 says:

    安装好之后,点击发布问题会报错

    FatalThrowableError in QuestionRepository.php line 22:
    Type error: Argument 1 passed to App\Repositories\QuestionRepository::normalizeTopics() must be of the type array, null given, called in D:\phpStudy\WWW\test.com\app\Http\Controllers\QuestionsController.php on line 42

发表评论

标记为*的字段是必填项(邮箱地址不会被公开)

你可以使用这些HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>