Я работаю с компонентами Livewire в приложении Laravel и сталкиваюсь с проблемами при обработке числовых входных данных, допускающих значение NULL (например, целых чисел, чисел с плавающей запятой). В частности, когда пользователь очищает поле числового ввода, Livewire присваивает свойству пустую строку (""). Такое поведение может привести к ошибкам типа, если для свойства указан числовой тип (int, float и т. д.).
Код: Выделить всё
class MyComponent extends Component
{
public ?int $numericValue = null;
public function updated($propertyName)
{
$this->validateOnly($propertyName, [
'numericValue' => 'nullable|integer',
]);
}
public function render()
{
return view('livewire.my-component');
}
}
Когда входное числовое значение очищено, Livewire назначает пустую строку, что приводит к ошибке типа, поскольку ?int не может быть пустой строкой.
Подробнее здесь:
https://stackoverflow.com/questions/787 ... components