本系列的一部分:
如何使用 Laravel 和 Docker Compose 在 PHP 中构建链接登陆页面
Laravel是一个开源 PHP 框架,它提供了一组工具和资源来构建现代 PHP 应用程序。在这个基于项目的教程系列中,您将使用 Laravel 框架构建一个Links Landing Page应用程序,使用由 Docker Compose 管理的容器化 PHP 开发环境。
最后,您将拥有一个使用 Laravel 构建并通过 Artisan 命令管理的单页网站,您可以在其中将相关链接分享给社交渠道和演示文稿上的受众。
Laravel 数据库迁移允许开发人员快速引导、销毁和重新创建应用程序的数据库,而无需登录数据库控制台或运行任何 SQL 查询。
在本指南中,您将创建一个数据库迁移来设置保存应用程序链接的表。为此,您将默认使用 Laravel 附带的 Artisan命令行工具。最后,您将能够根据需要多次销毁和重新创建数据库表,仅使用artisan
命令即可。
首先,首先确保您位于应用程序的根目录中,并且您的 Docker Compose 开发环境已启动并正在运行:
- cd ~/landing-laravel
- docker-compose up -d
Outputlanding-laravel_app_1 is up-to-date
landing-laravel_nginx_1 is up-to-date
landing-laravel_db_1 is up-to-date
接下来,创建一个数据库迁移来设置links
表。Laravel Migrations允许开发人员以编程方式创建、更新和销毁数据库表,作为数据库模式的版本控制系统。
要创建新的迁移,您可以运行make:migration
Artisan 命令,这将在 Laravel 应用程序的database/migrations
文件夹中引导一个新类。这个类将包含一个默认的样板代码。
请记住使用在安装了 PHPdocker-compose exec app
的app
服务容器上运行命令:
- docker-compose exec app php artisan make:migration create_links_table
OutputCreated Migration: 2020_11_18_165241_create_links_table
请注意,迁移名称是根据当前日期和时间以及作为make:migration
命令参数提供的名称生成的。因此,您的迁移文件名会略有不同。
使用您选择的编辑器打开生成的迁移类:
- nano database/migrations/2020_11_18_165241_create_links_table
接下来,更新up
方法以包含存储应用程序数据所需的表列。
将迁移类的当前内容替换为以下代码。突出显示的值是唯一需要添加的行,因此如果您愿意,您也可以只复制那些突出显示的行并将它们包含在您的Schema::create
定义中:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateLinksTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('links', function (Blueprint $table) {
$table->id();
$table->string('url', 200);
$table->text('description');
$table->boolean('enabled')->default(true);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('links');
}
}
除了使用 Artisan 命令自动生成的表定义中包含的默认字段之外,您还在此表中包含三个新字段:
url
:用于保存链接 URL 的字符串字段。description
:用于保存链接描述的文本字段。enabled
:存储链接状态的字段,无论是否启用。的boolean
模式类型将产生一个tinyint
无符号的字段来存储任何的值0
的1
。
添加完这些字段后,请保存迁移文件。接下来,使用以下命令运行迁移:
- docker-compose exec app php artisan migrate
OutputMigration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (152.46ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (131.12ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (101.06ms)
Migrating: 2020_11_18_165241_create_links_table
Migrated: 2020_11_18_165241_create_links_table (60.20ms)
您会注意到其他迁移也与create_links_table
. 这是因为默认的 Laravel 安装带有用户迁移(带有一个users
表和一个password_resets
表)和排队作业(带有一个failed_jobs
表)。因为我们的演示应用程序不会使用这些功能,所以现在删除这些迁移是安全的;但是,如果您正在开发自己的应用程序并计划进一步开发它,您也可以选择保留它们。所有迁移文件都位于database/migrations
应用程序的根文件夹中。
有关数据库迁移的更多详细信息,请参阅我们关于如何在 Laravel 中使用数据库迁移和播种器抽象数据库设置的指南。
在本系列的下一部分中,您将创建一个自定义 Artisan 命令来列出、插入和删除应用程序链接表中的条目。