Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.1K
Visualizações
Laravel Livewire Select2 Problema de selección múltiple

Variación del producto El color se deshabilita por primera vez después de habilitar se puede seleccionar el color. sin wire:ignore después de seleccionar el color, desaparecerá de la opción de selección.

Si uso wire:ignore

 {{ $colors_active== 0 ?'disabled':'' }}

deshabilitar no se elimina, todavía está deshabilitado.

ingrese la descripción de la imagen aquí

producto.blade.php

 <div class="row g-3 align-center"> <div class="col-lg-3"> <div class="form-group"> <input class="form-control" type="text" value="Colors" readonly> </div> </div> <div class="col-lg-8"> <div class="form-group"> <select class="form-control color-select2" multiple style="width: 100%" {{ $colors_active== 0 ?'disabled':'' }} > @foreach (App\Models\Admin\Color::orderBy('name', 'asc')->get() as $key => $color) <option value="{{$color->code}}"> {{$color->name}} </option> @endforeach </select> </div> </div> <div class="col-lg-1"> <div class="form-group"> <div class="form-control-wrap"> <label class="c-switch c-switch-pill c-switch-opposite-success"> <input wire:model="colors_active" class="c-switch-input" type="checkbox" value="1" ><span class="c-switch-slider"></span> </label> </div> </div> </div> </div>

Componente Producto.php

 { public $colors_active; public $choice_attributes = []; public $colors = []; public function mount(){ } public function render() { return view('livewire.admin.product.product')->layout('admin.layouts.master'); } }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Livewire ignorará cualquier cambio en cualquier cosa marcada con wire:ignore , por lo que, naturalmente, no volverá a procesar nada cuando se ignore.

Puede resolver esto usando Apline.js y entrelazar la propiedad $colors_active con un atributo en Alpine.js. Enredar significa que cuando Livewire actualiza la variable en su backend, Alpine también actualiza su variable, y viceversa (Alpine.js actualiza Livewire cuando se cambia la variable). Básicamente, se mantiene sincronizado entre los dos.

Luego, puede hacer que Alpine.js vincule dinámicamente la propiedad deshabilitada de su elemento de selección en función de esa variable.

 <div x-data="{ 'colorsActive': @entangle('colors_active') }"> <select class="form-control color-select2" multiple style="width: 100%" wire:ignore x-bind:disabled="colorsActive == 0" > @foreach (App\Models\Admin\Color::orderBy('name', 'asc')->get() as $key => $color) <option value="{{ $color->code }}"> {{ $color->name }} </option> @endforeach </select> </div>
over 4 years ago · Santiago Trujillo Relatório

0

Esta es la forma en que suelo abordar este tipo de soluciones con Livewire, sin Alpine porque desafortunadamente no lo he aprendido. En el componente de la pala:

 <div class="col d-flex display-inline-block"> <label>Device</label> <select {{ $customer ? '' : 'disabled' }} wire:model="selectedItem" class="form-control contact_devices_multiple" multiple="multiple" data-placeholder="Select" style="width: 100%;"> @foreach($devices as $device) <option value="{{ $device->id }}">{{ $device->alias }}</option> @endforeach </select> </div> <script> window.loadContactDeviceSelect2 = () => { $('.contact_devices_multiple').select2().on('change',function () { livewire.emitTo('contact-component','selectedItemChange',$(this).val()); }); } loadContactDeviceSelect2(); window.livewire.on('loadContactDeviceSelect2',()=>{ loadContactDeviceSelect2(); }); </script>

en componente

 public $customer = null; public $selectedItem = []; public function hydrate() { $this->emit('loadContactDeviceSelect2'); } public $listeners = [ 'selectedItemChange', ]; public function selectedItemChange($value) { dd($value); }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda