📅  最后修改于: 2023-12-03 14:49:57.927000             🧑  作者: Mango
Laravel是一种开源的PHP web应用程序框架,它是用最新的PHP语言编写的,经过了大量的测试和应用,并且已经成为了PHP编程语言中的主流框架。其中重要的概念之一就是模型(model),模型代表数据库中的表格,通过模型操作数据库表。
在Laravel中,我们可以使用迁移(migration)来创建和修改数据库表和字段。使用Laravel的迁移和模型功能,我们可以在应用程序中轻松地管理数据库表和字段。本文将介绍如何使用迁移Laravel来制作模型。
在开始之前,我们需要已经安装并配置好Laravel框架。如果你还没有安装,你可以参考Laravel官方文档安装Laravel。本文使用的是Laravel 8版本。
首先,我们需要创建一个迁移来创建我们的模型对应的数据库表。我们可以使用laravel的 make:model 命令来同时生成模型和对应的迁移。打开终端,在项目根目录下输入以下命令:
php artisan make:model Post -m
其中 Post
是我们的模型名称,-m
参数表示同时创建对应的迁移文件。执行该命令后,Laravel会在app/Models目录下生成一个Post模型和在database/migrations目录下生成一个迁移文件,我们可以根据需要修改这个迁移文件来定义我们的数据库表:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePostsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
}
上述代码使用Schema
类的create
方法创建了一个名为posts
的表,并定义了id
、title
、content
和timestamps
字段。我们也可以在这里定义其他的字段,具体实现方式可以参考Laravel的文档。
创建好迁移文件后,我们需要运行迁移来创建数据库表:
php artisan migrate
运行完毕后,数据库中会自动创建名为posts
的表。
创建完迁移之后,我们还需要创建模型类,以便Laravel可以与数据库进行交互。Laravel的模型通常作为继承自 Illuminate\Database\Eloquent\Model
的类来实现。
首先打开app/Models/Post.php
文件,编辑它:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'title',
'content',
];
}
上述代码定义了Post模型,并且指定了模型允许批量赋值的属性列表。在这里,我们定义了title
和content
属性,允许使用create方法进行批量赋值。除了$fillable属性,我们还可以定义其他的属性来规定模型在使用数据库表格时的行为,具体实现方式可以参考Laravel的文档。
创建好模型之后,我们就可以在应用程序中使用它了。比如,我们可以在我们的路由中创建一个POST请求,用于创建新的文章:
use App\Models\Post;
Route::post('/posts', function(Request $request) {
$post = Post::create($request->only(['title', 'content']));
return response()->json($post);
});
在这里,我们使用Laravel内置的create
方法来插入新数据,并返回插入后的数据作为响应。
通过使用迁移Laravel和模型,我们可以轻松地定义和操作数据库表和记录。Laravel提供了非常灵活的迁移和模型机制,可以满足各种应用程序的需求。此外,Laravel还提供了丰富的查询构造器和Eloquent ORM,可以更轻松地查询和操作数据库。详细内容可以参考Laravel官方文档。