30 分钟使用 Laravel Voyager 构建一个论坛项目的后台
怎样在短时间内构建一个完整的论坛系统,这可以实现吗?虽然,Laravel 已经让 web 开发变得足够轻松而简单,但是我的许多同事仍然在思考这个问题。
今天我将提供这么一款扩展,他可以帮你快速构建完整项目。
首先,我们需要一个 Laravel 项目,通过以下命令创建:
composer create-project --prefer-dist laravel/laravel blog "6.*"
然后配置我们的环境变量 .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=MyDbName
DB_USERNAME=root
DB_PASSWORD=
基本配置完成,下面我们运行以下命令:
在 Laravel 5 版本中:
php artisan make:auth
在 Laravel 6 及以上版本:
composer require laravel/ui "^1.0" --dev
php artisan ui vue --auth
执行数据库迁移:
php artisan make:migration
基本框架搭建完成,现在让我们来安装 Laravel Voyager 扩展吧,通过以下命令安装扩展:
composer require tcg/voyager
Voyager 安装提供了 --with-dummy
参数供你选择,他可以帮你生成预览数据。
下面是基本安装:
php artisan voyager:install
下面是带有预览数据的安装:
php artisan voyager:install --with-dummy
Voyager 提供了以下命令帮你快速创建系统管理员:
php artisan voyager:admin your@email.com --create
管理员创建完成,现在让我们通过以下地址访问我们的后台(这里本地地址为:localhost:8000 ):
<http://localhost:8000/admin>
登录后你可能会遇到图像显示问题,那是因为我们的 .env 环境变量中的 APP_URL 问题导致的,下面更换 APP_URL 为我们的本地地址。
APP_URL=http://localhost
To:
APP_URL=http://localhost:8000
至此,我们的后台已经搭建完成,下面是预览截图:
系统默认后台
想要知道该后台的更多信息,你可以先去 这里,现在我们要继续我们的完成论坛的搭建,现在我们需要另一个扩展 Laravel Chatter,这是一个提供了完成论坛功能的扩展。
运行安装命令:
composer require "devdojo/chatter=0.2.*"
如果你正在使用的 Laravel 版本低于 5.5,需要将以下代码添加到 config/app.php 的 provider's 数组中。
DevDojo\Chatter\ChatterServiceProvider::class,
发布 Vendor 静态资源:
php artisan vendor:publish --provider="DevDojo\Chatter\ChatterServiceProvider"
然后通过以下命令重新加载一下依赖:
composer dump-autoload
最后,执行数据库迁移:
php artisan migrate
在执行迁移的时候,你可能会遇到这样的问题: “Foreign key constraint is incorrectly formed”
在 Laravel 5.8+ 的版本中,你去要在 database/migrations 更改以下内容:
increments
更改为:
bigincrements
然后
integer
更改为:
biginteger
执行完成以上命令,通过以下命令:
php artisan migrate:fresh
数据库创建王城,下一步生成预览数据,通过以下命令:
php artisan db:seed --class=ChatterTableSeeder
现在,我们可以方位我们的论坛了。
http://localhost:8000/forums
不要忘记引入我们的 CSS 和 js 文件:
在 app.blade.php 文件中添加: @yield('css')
在 head 起始标签和 body结束标签之间添加以下代码:
@yield('js')
现在论坛看起来是这样的:
论坛
现在我们有了一个庞大的数据库,包含 Voyager 和 Chatter 表。我们现在需要做的是将仪表板和论坛集成在一起。为此,我们将访问仪表板并添加 Chatter 表。
访问:
http://localhost:8000/admin
创建新管理员时可能会遇到另一个问题,你需要为 Voyager 表填充数据。可以运行以下命令:
php artisan db:seed --class=VoyagerDatabaseSeeder
现在我们需要转到 tools/bread,以便在仪表板中添加这些表。
如你所见,我们数据库中所有的表在这里都可以看到,现在我们单击“Add BREAD to this table”。
添加 bread
如你所见,在模型名称这一栏,你需要指定一个模型,为此,我们需要创建一个名为 ChatterCategory 的新模型作为示例。
在页面下方,可以看到你想要加到模型里的所有变量和对应的选项。
最后,我们在仪表板中添加了 categories 表,现在我们可以管理所有类别了。你可以对其他表执行相同的步骤。
这篇文章可能比其他文章长一些,但有了这两个包,你现在可以在 30 分钟之内创建一个带有仪表板的完整论坛了。
Laravel是我使用过的最好的PHP框架之一,它允许你创建大型 web 应用程序,对于那些想学习新技术的人来说是一个很好的工具。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。