📅  最后修改于: 2023-12-03 14:43:47.185000             🧑  作者: Mango
在 Laravel 中,模型是与数据库表格进行交互的重要部分。迁移也是 Laravel 的一个重要工具,可以保证数据库表格的版本控制和一致性。
要创建一个 Laravel 模型,可以使用 Artisan 命令行工具。在控制台中输入以下命令:
php artisan make:model ModelName
将ModelName
替换为实际的模型名称。这个命令将在 app/Models 目录下创建一个新的模型文件。
默认情况下,Laravel 模型类是继承自 Illuminate\Database\Eloquent\Model 类。
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ModelName extends Model
{
use HasFactory;
protected $table = 'table_name'; // 如果表名不是模型名所对应的复数形式,则需要在模型中指定表名
}
请注意上述代码中的 HasFactory
,它是 Laravel 8 引入的工厂模式特性。通过在模型中引入 HasFactory
,可以轻松地生成模拟数据,而无需自己编写工厂代码。
迁移是一种将数据库表格状态从一个版本转换到另一个版本的数据库更改。如果您需要添加一个新的表格,添加一个新的列或修改一个列的类型,都可以使用 Laravel 迁移来完成任务。
要创建一个 Laravel 迁移,可以在控制台输入以下命令:
php artisan make:migration create_table_name_table
将 table_name
替换为您要创建的表格的名称。这个命令将在 database/migrations
目录下创建一个新的迁移文件。
编辑迁移文件并在 up
方法中设置所需的表格结构。例如,在 create_table_name_table
迁移中,我们可以使用以下代码创建一个新表:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTableNameTable extends Migration
{
public function up()
{
Schema::create('table_name', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('table_name');
}
}
请注意在 up
方法中的 Schema::create
代码。在其中定义要创建的表及其拥有的字段和字段类型。
要运行迁移,可以在控制台中使用 Artisan 命令 migrate
,它会运行所有尚未运行的迁移,将数据库表格状态升级到与最新的迁移相符的版本:
php artisan migrate
如果您计划在生产环境中使用迁移,则应非常小心地进行操作,并使用确认命令进行确认。例如:
php artisan migrate --force
这条命令不会在迁移之前询问任何问题,并直接运行迁移。在生产环境中,这可能会导致数据丢失或其他意外事件。
如果您需要撤消最近一次迁移的更改,可以使用 Artisan 命令 migrate:rollback
:
php artisan migrate:rollback
这条命令将撤消最新的迁移的所有更改。如果您需要回退多个迁移,则可以使用 migrate:rollback
命令的 --step
选项来指定要回退的步骤数。
创建模型和迁移是 Laravel 中非常基本的操作。使用这些工具,您可以轻松地创建和修改数据库表格,并将数据存储在适当的模型中。同时,记住在生产环境中特别小心,并使用确认命令进行确认。