我正在尝试为现有项目实施灯丝管理面板。我想实现多选。
我进行了测试,尝试选择多个且仅选择 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(),
]);
当我尝试保存运动员而不显示多个时,我像图像一样选择并收到错误
当您使用多重
时这些选项以 JSON 格式返回
如果列是字符串,它会保存 JSON