You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel模型如何定义数据库字段及类型?参考Django实现方式

在Laravel中声明数据库字段及数据类型的方式

Laravel和Django这类框架的实现逻辑不同,它不会直接在模型类里定义字段类型,而是通过数据库迁移文件来创建/修改表结构,模型类主要负责和数据表的关联、数据填充规则及类型转换等操作。

1. 用迁移文件定义字段(核心方式)

迁移是Laravel管理数据库结构的官方标准方式,步骤如下:

  • 生成迁移文件:
php artisan make:migration create_models_table
  • 打开生成的database/migrations/xxxx_xx_xx_xxxxxx_create_models_table.php文件,在up()方法里声明字段及对应类型:
public function up()
{
    Schema::create('models', function (Blueprint $table) {
        $table->id(); // 自增主键
        $table->string('name'); // 字符串类型字段
        $table->string('address'); // 字符串类型字段
        $table->timestamps(); // 自动维护的创建、更新时间字段
    });
}
  • 执行迁移,创建数据表:
php artisan migrate

2. 在模型类中做关联与配置

模型类无需定义字段类型,但需配置和数据表的关联规则、批量赋值权限及可选的类型转换:
创建对应模型(或用php artisan make:model MyModel生成):

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
    // 手动指定关联的数据表(默认规则:模型类名复数形式为表名,如MyModel对应my_models)
    protected $table = 'models';

    // 指定允许批量赋值的字段
    protected $fillable = ['name', 'address'];

    // 可选:字段类型转换,比如将数据库存储的字符串转为特定类型
    protected $casts = [
        // 示例:'is_valid' => 'boolean'
    ];
}

内容的提问来源于stack exchange,提问作者orphius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:22:42