我目前正在学习Laravel Filament,但是突然出现这样的错误。之前我修复了错误,但结果并不如预期。
这是错误结果及其代码的屏幕截图。
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Section::make('Relationships')
->schema([
Forms\Components\Select::make('country_id')
->relationship(name: 'country', titleAttribute: 'name')
->searchable()
->preload()
->live()
->required(),
Forms\Components\Select::make('state_id')
->options(fn (Get $get): Collection => State::query()
->where('country_id', $get('country_id'))
->get()
->pluck('name', 'id'))
->searchable()
->preload()
->live()
->required(),
Forms\Components\Select::make('city_id')
->options(fn (Get $get): Collection => City::query()
->where('state_id', $get('state_id'))
->get()
->pluck('name', 'id'))
->searchable()
->preload()
->required(),
我想知道我的代码问题的根本原因是什么。
错误非常明显:没有返回预期的类型。例如,从您的代码中,请考虑以下内容:
->options(fn (Get $get): Collection => State::query()
->where('country_id', $get('country_id'))
->get()
->pluck('name', 'id'))
在此上下文中,
Collection
指的是Illuminate\Database\Eloquent\Collection
还是Illuminate\Support\Collection
?
请记住,
pluck()
会将您的数据转换为Illuminate\Support\Collection
。
您可以相应地调整您的退货类型。