📅  最后修改于: 2023-12-03 15:02:36.257000             🧑  作者: Mango
在 Laravel 中,迁移是一种处理与数据库交互的方式。迁移能够让你以面向对象的方式定义数据库表的模式和结构,而不需要手动编写 SQL 代码。
在这篇文章中,我们将学习如何使用 Laravel 迁移构建模型,让我们一起开始吧!
首先,我们需要创建迁移以便能够通过迁移来定义数据表的架构。我们可以使用 make:migration
Artisan 命令来创建迁移。例如:
php artisan make:migration create_users_table --create=users
以上命令将会在 database/migrations
目录下创建一个名为 create_users_table
的迁移文件,并在数据库中创建一个名为 users
的数据表。
一旦迁移创建完成,我们就可以打开该迁移文件并且定义该表的字段。例如,以下代码演示了如何定义一个 users
数据表:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
}
以上代码定义了 users
数据表的字段和约束。
一旦我们定义了数据表的模式和结构,我们便可以运行迁移并创建该表。我们使用以下 Artisan 命令来运行所有可用的迁移:
php artisan migrate
如果你只想运行调试迁移或者测试迁移,可以在命令行后加上 --env
和环境名称(例如:--env=testing
)。
此外,你可以使用 migrate:rollback
命令来撤销迁移操作。
一旦你完成了数据表的架构定义和创建,我们现在可以创建相应的模型来访问该表的数据了。
在 Laravel 中,定义模型使用 Eloquent。我们可以使用 Artisan 命令 make:model
来创建一个空白的 Eloquent 模型,例如:
php artisan make:model User
这将会创建一个名为 User
的模型文件位于 app/Models
目录下。请注意,如果在你的应用程序中有多个表需要创建 Eloquent 模型,则您可以考虑将模型放在其他子目录中。
一旦你创建了模型,你可以定义模型的属性,同时定义与其他表的关联和各种查询方法来获取数据。例如,以下代码显示了如何定义一个 User
模型,同时将模型与 users
表关联:
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'email',
'password',
];
}
以上代码演示了如何定义模型,以及如何使用 $fillable
属性定义可以批量赋值的属性。
一旦我们定义了模型,我们便可以使用该模型执行各种操作。以下是一些示例代码,演示了如何在 Laravel 中使用模型:
// 获取所有用户
$users = User::all();
// 根据 ID 获取用户
$user = User::find($id);
// 新增用户
$user = new User;
$user->name = 'John';
$user->email = 'john@example.com';
$user->password = Hash::make('password');
$user->save();
// 更新用户
$user = User::find($id);
$user->name = 'Jane';
$user->save();
// 删除用户
$user = User::find($id);
$user->delete();
以上代码演示了如何使用模型进行 CRUD 操作。
总之,使用迁移和模型可以使数据库的操作变得更加简单和易于管理。在 Laravel 中,这种方式可以大大提高开发者的生产力,使您能够更加专注于业务逻辑的实现。