barryvdh / laravel-ide-helper

IDE Helper for Laravel
MIT License
14.07k stars 1.16k forks source link

Support for casts AsEnumCollection #1553

Open Braunson opened 2 months ago

Braunson commented 2 months ago

Summary

Here's my example casts method 'preferences':

protected function casts(): array
    {
        return [
            'preferences' => AsEnumCollection::of(UserPreferences::class),
        ];
    }
}

Currently the IDE helper generates the property as AsEnumCollection. If I attempt to use $user->preferences->anyCollectionMethod() it returns an undefined method error.

Instead the IDE helper should at the minimum generate returning an Eloquent Collection instance.

 * @property \Illuminate\Database\Eloquent\Collection $preferences
mfn commented 2 months ago

Can you make a PR?

uno-sw commented 2 weeks ago

I tried v3.1.0 and it only seems to work with AsEnumCollection::class, not AsEnumCollection::of(MyEnum::class). Am I missing something?

uno-sw commented 2 weeks ago

After reading the code for a while, I found out that it is not supported yet (and AsCollection::using is not supported either). I'll be happy to create a PR for it when I have time :)