Ir para conteúdo
Fórum Script Brasil
  • 0

Consegui resolver o problema do wire:model


Frank K Hosaka

Pergunta

Antes do Laravel 12 eu usei o marcador <form><input></form>. O Livewire também tem o marcador <form>, mas eu ainda não sei como usá-lo, mas eu sei que o Livewire consegue trabalhar com o valor do <input wire:model="inputQt">  em conjunto com a variável pública $inputQt através do processo da "hidratação".

O problema é que eu trabalho com o MySQL e tenho que mexer com vários registros e depois de muitas tentativas eu consegui casar o wire:model com os registros.

Mas hoje estava brincando com o modal, e achei bem mais fácil trabalhar com um wire:model do que um monte deles:

Esse é um trecho da view que chama a função wire:click="nfQt(...)"
 

<!-- parte do blade -->
    @if($modal2)
        <div class="fixed inset-0 flex items-center justify-center">
            <div class="bg-white p-6 rounded shadow-lg text-center border-8 border-gray-500">
                <div>Qt anterior: {{ $qt }}</div>
                <div>Qt atual: </div>
                <input wire:model="inputQt" autofocus class=px-2>
                <button wire:click="nfQt({{$custoTotal}},{{$qt}},{{$codprod}},{{true}})" 
                    class="mt-4 bg-blue-500 text-white px-4 py-2 rounded">
                    Alterar
                </button>
                <button wire:click="$set('modal2', false)" class="mt-2 bg-red-500 text-white px-4 py-2 rounded">
                    Cancelar
                </button>
            </div>
        </div>
    @endif

<!-- outra parte do mesmo blade -->

@foreach($previa as $p)
        <div class="flex odd:bg-gray-200">
            <div class="w-[80px] text-right truncate">{{$p->codforn}}</div>
            <div class="w-[50px] text-right">{{$p->codprod}}</div>
            <div class="w-[318px] ml-2 truncate">{{$p->prod}}</div>
            <div wire:click="nfQt({{$p->custototal}},{{$p->qt}},{{$p->codprod}})" 
                class="w-[50px] text-right">
                {{ $p->qt }}
            </div>
            <div {!! $p->class !!}
                wire:click="atualizar({{$p->custoatual}},{{$p->custoanterior}},{{$p->codprod}})">
                {{ dec($p->custoatual) }}
            </div>
            <div class="w-[70px] text-right">{{ dec($p->custototal) }}</div>
        </div>
    @endforeach
 

Esse é o trecho do componente que executa o método nfQt(...), note que esse método serve tanto para chamar o modal bem como executar o resto do serviço, dependendo da escolha do usuário:
 

<?php
// ...
function nfQt($custoTotal,$qt,$codprod,$executar = false) {
        if($executar) {
            $this->modal2=false;
            $novoCusto=round($custoTotal/$this->inputQt,2);
            $custoAnterior=tbprod::where('codprod',$codprod)
                ->value('custo');
            if($novoCusto==$custoAnterior) {
                $class = "class='w-[70px] text-right'";
            } else {
                $class = "class='w-[70px] text-right text-red-500'";
            }
            tbnf::where('codprod',$codprod)
                ->update(['qt'=>$this->inputQt,'custoatual'=>$novoCusto,
                    'custoanterior'=>$custoAnterior,'class'=>$class]);
            $this->previa=tbnf::all();
        } else {
            $this->custoTotal=$custoTotal;
            $this->qt=$qt;
            $this->codprod=$codprod;
            $this->modal2=true;
        }
    }

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,4k
    • Posts
      652,2k
×
×
  • Criar Novo...