#html #laravel-livewire
Вопрос:
В Livewire у меня есть цикл foreach для отображения списка флажков, подобных этому:
@foreach($restaurantCategories as $category)
<div class="d-flex flex-column switch-cat">
<label class="form-check-label mb-50" for="{{$category->id}}">{{$category->id}} - {{$category->name}}</label>
<div class="form-check form-check-warning form-switch">
<input type="checkbox"
class="form-check-input" value={{$category->id}}
@if(array_has($restaurant_categories, $category->id)) checked @endif
wire:model="restaurant_categories"
/>
</div>
</div>
@endforeach
Это работает нормально, но когда я устанавливаю флажок, значение добавляется restaurant_categories
в компонент в виде строки, и мне нужно добавить его в виде целого значения.
Я не могу привести $category->id
значение, потому что оно взято из сводной таблицы и всегда является целым числом.
Ответ №1:
protected $casts = [
'restaurant_categories' => 'integer',
];
Комментарии:
1. я ценю ваш ответ, но «restaurant_categories» на самом деле является массивом. Решением может быть: protected $casts = [ ‘restaurant_categories.*’ => ‘целое число’, ]; заставить элементы массива быть целыми, но даже это не решит мою проблему.