Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filament\Forms\Components\Select::isOptionDisabled(): Argument #2 ($label) must be of type string, null given #60

Open
abdulmejidshemsu opened this issue Dec 20, 2022 · 8 comments

Comments

@abdulmejidshemsu
Copy link

Filament\Forms\Components\Select::isOptionDisabled(): Argument #2 ($label) must be of type string, null given

@frankyso
Copy link
Member

frankyso commented Jan 6, 2023

can you please attach your script?

@EmJay646
Copy link

@abdulmejidshemsu did you get this sorted out I'm having the same problem

@abdulmejidshemsu
Copy link
Author

@EmJay646 the issue was from the excel file I was using, it contained validation, it wasn't plain excel file.

what you can do to solve this is remove all validation from the excel that you are trying to upload or copy and paste the entire content of that excel to another blank excel and upload the new one

@TheFehr
Copy link

TheFehr commented May 30, 2023

I am encountering the same error when I have a Resource that defines a Forms\Components\Select::make(...)->relationship(..) which is a Relationship pointing to the same class as the Resource class.

My Company has a nullable LinkedCompany but if I add that to the $form->schema([ it fails with the mentioned error.

class CompanyResource extends Resource
{
    protected static ?string $model = Company::class;

    protected static ?string $label = 'Firma';
    protected static ?string $pluralLabel = 'Firmen';
    protected static ?string $recordTitleAttribute = 'name';

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                Forms\Components\TextInput::make('name')
                    ->label('Name')
                    ->maxLength(191),
                Forms\Components\Select::make('linked_company_id')
                    ->label('Linked Firma')
                    ->relationship('linkedCompany', 'name'),
            ]);
    }

}

@acoustep
Copy link

I've just had this same error and came across this issue by chance (I'm not using filament-import so I think this is related to the core).

Can confirm that I'm trying to create a relationship with the same model as the resource that I'm in.

class QuestionsRelationManager extends RelationManager {
    protected static string $relationship = 'questions';
    // ....
    Repeater::make('hide_logics')
      ->relationship()
      ->schema([
          Select::make('value_question_id')
              ->label('Related Question')
              ->relationship('related_question', 'id')
              ->options(function (RelationManager $livewire) {
                  return $livewire->ownerRecord->questions()->get()->filter(fn($q) => $q->id != $livewire->id)->pluck('text', 'id');
              })
              ->searchable()
              ->required(),

Haven't found a solution yet, just thought I'd chime in with a confirmation of the issue.

@Nes-cmd
Copy link

Nes-cmd commented Jul 21, 2023

I found the issue is that in the options field of select, null is returned. In the above one
return $livewire->ownerRecord->questions()->get()->filter(fn($q) => $q->id != $livewire->id)->pluck('text', 'id');
is returning ['someId' => null ]. so make sure that the text is not null for all reords.

@ntsbstn
Copy link

ntsbstn commented Aug 31, 2023

I had the same issue.
It's surely related to Core, but since this thread is the first on Google for this issue, I'm reacting here.

Here is how I fixed it for those who are still struggling.

In my case, the issue raised when at least one of the related option was missing the 'name'.
I just filtered my query with 'whereNotNull' as below.

Select::make('organization_id')
  ->label('Organization')
  ->options(Organization::whereNotNull('name')->pluck('name', 'id'))
  ->disabled()
  ->default(function (RelationManager $livewire) {
      return $livewire->ownerRecord->organization_id ?? '';
}),                    

Hope this helps.

@YANGJIAXUE2022510
Copy link

"The error was caused by a null value as the second parameter in the database, which I forgot to make non-null when writing the code. An empty value was inserted into the database, resulting in an error."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants