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

Filament中slug无默认值问题求助,执行迁移后仍报错

解决Filament中slug无默认值的问题

首先修复你的迁移代码中的语法错误,这些错误会导致数据库结构异常,进而引发后续问题:

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    public function up(): void
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->foreignId('category_id')->constrained()->onDelete('cascade');
            $table->string('title');
            $table->string('slug')->unique();
            $table->text('content');
            $table->boolean('is_published')->default(false);
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('posts');
    }
};

修复的具体问题:

  • 补全category_id字段onDelete('cascade')的闭合括号
  • 修正拼写错误的Stable为$table
  • 补全title字段的引号并修正写法

接下来解决slug无默认值的核心问题:
slug字段设置为unique且无默认值,在Filament创建Post记录时若未自动填充,会触发数据库报错。你可以通过以下两种方式处理:

方式1:在Filament Resource中自动生成slug(推荐)

在PostResource的form方法里,给slug字段添加基于title的自动生成规则:

use Filament\Forms\Components\TextInput;
use Illuminate\Support\Str;

// ...

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // 其他字段...
            TextInput::make('title')
                ->required()
                ->live(onBlur: true)
                ->afterStateUpdated(function (string $operation, $state, Forms\Set $set) {
                    if ($operation === 'create') {
                        $set('slug', Str::slug($state));
                    }
                }),
            TextInput::make('slug')
                ->required()
                ->unique(ignoreRecord: true),
            // 其他字段...
        ]);
}

用户输入title后,slug会自动生成,避免空值提交。

方式2:给slug字段添加默认值(不推荐)

若希望数据库层面提供默认值,可修改迁移代码中的slug字段:

$table->string('slug')->unique()->default('');

此方式仅解决空值报错问题,不符合slug的实际使用场景,不建议采用。

最后重新执行迁移:

php artisan migrate:fresh

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:25:12