Livewire — Приведенное входное значение

#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.*’ => ‘целое число’, ]; заставить элементы массива быть целыми, но даже это не решит мою проблему.