灯丝多选表单保存

问题描述 投票:0回答:1

我正在尝试为现有项目实施灯丝管理面板。我想实现多选。

我进行了测试,尝试选择多个且仅选择 1 个。当我删除“多个”选项并仅输入 1 时,它工作得很好。但是,当我更改为“多个”并选择多个项目时,它的行为就像该字段不存在一样。我探索了使用数据透视表的可能性,但无法保存数据透视表中的选择。

我想这样保存: 表结构如下。

<table>
  <tr>
    <td>Tournament</td>
    <td>Athlets</td>
  </tr>
  <tr>
    <td>1</td>
    <td>10;21;43</td>
  </tr>

或数据透视表

<table>
      <tr>
        <td>Tournament</td>
        <td>Athlets</td>
      </tr>
      <tr>
        <td>1</td>
        <td>10</td>
      </tr>
      <tr>
        <td>1</td>
        <td>21</td>
      </tr>
      <tr>
        <td>1</td>
        <td>32</td>
      </tr>

我的桌子装备:

public function up(): void
    {
        Schema::create('equipes', function (Blueprint $table) {
            $table->id();
            $table->timestamp('created_at')->nullable();
            $table->timestamp('updated_at')->nullable();
            $table->timestamp('deleted_at')->nullable();
            $table->unsignedBigInteger('atleta_id');
            $table->unsignedBigInteger('competicoe_id');
            $table
                ->foreign('atleta_id')
                ->references('id')
                ->on('atletas')
                ->onDelete('cascade')
                ->onUpdate('cascade');
            $table
            ->foreign('competicoe_id')
            ->references('id')
            ->on('competicoes')
            ->onDelete('cascade')
            ->onUpdate('cascade');
        });
    }

我的模特:

public function atletas()
{
    return $this->belongsTo(Atleta::class, 'atleta_id');
}

public function competicoes()
{
    return $this->belongsTo(Competicoe::class, 'competicoe_id');
}

我的装备资源:

    return $form
        ->schema([
            Forms\Components\Select::make('competicoe_id')
                ->label('Competição')
                ->relationship(name: 'competicoes', titleAttribute: 'titulo')
                ->searchable()
                ->preload()
                ->required(),
            Forms\Components\Select::make('atleta_id')
                ->label('Atletas')
                ->relationship(name: 'atletas', titleAttribute: 'nome')
                ->searchable()
                ->multiple()
                ->preload()
                ->required(),
        ]);

当我尝试保存运动员而不显示多个时,我像图像一样选择并收到错误

enter image description here enter image description here

laravel-filament
1个回答
0
投票

当您使用多重

这些选项以 JSON 格式返回

如果列是字符串,它会保存 JSON

© www.soinside.com 2019 - 2024. All rights reserved.