Unzureichende Eigenschaftstyp in STDClass
Posted: 22 Feb 2025, 12:05
Ich habe verschiedene Codeinstanzen und erstellt Optionen für einen Dropdown-Unternehmen dynamisch mit einem vorhergehenden leeren Feld: < /p>
return State::all()
->map(fn (State $state) => (object) [
'value' => $state->id,
'label' => $state->name,
])
->sortBy('label')
->prepend((object) [
'value' => null,
'label' => '',
])
;
< /code>
und es führt konsequent zu diesem Phpstan -Fehler: < /p>
Parameter #1 $value of method
Illuminate\Support\Collection::prepend()
expects
object{value: int, label: string}&stdClass,
object{value: null, label: string}&stdClass given.
Property ($value) type int does not accept type null.
< /code>
Ich nehme offensichtlich an, dass Phpstan es so analysiert, da ein int dieser Eigenschaft in der STD -Klasse zuerst zugewiesen ist, dass anschließend nur Ganzzahlen gültige Werte sind. < /p>
Was wäre der geeignete Weg, dies zu beheben? Ich weiß, dass es möglich ist, Objektformen zu deklarieren, aber ich bin mir nicht sicher, wie ich das in dieser Situation anwenden soll. /> [*] Larastan v2.9.5
[*] phpstan v1.10.67
return State::all()
->map(fn (State $state) => (object) [
'value' => $state->id,
'label' => $state->name,
])
->sortBy('label')
->prepend((object) [
'value' => null,
'label' => '',
])
;
< /code>
und es führt konsequent zu diesem Phpstan -Fehler: < /p>
Parameter #1 $value of method
Illuminate\Support\Collection::prepend()
expects
object{value: int, label: string}&stdClass,
object{value: null, label: string}&stdClass given.
< /code>
Ich nehme offensichtlich an, dass Phpstan es so analysiert, da ein int dieser Eigenschaft in der STD -Klasse zuerst zugewiesen ist, dass anschließend nur Ganzzahlen gültige Werte sind. < /p>
Was wäre der geeignete Weg, dies zu beheben? Ich weiß, dass es möglich ist, Objektformen zu deklarieren, aber ich bin mir nicht sicher, wie ich das in dieser Situation anwenden soll. /> [*] Larastan v2.9.5
[*] phpstan v1.10.67