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

O Livewire não precisa do <form>


Frank K Hosaka

Pergunta

Tentei incluir alguns registros pelo blade através de um <form>, mas o Livewire não incluia coisa aguma.

Estudando o código, o Livewire começa apagando a tabela tbmercado. Ou seja, toda vez que submetia o <form> ele chamava novamente a rotina inicial do Livewire.

Para resolver o problema, eu simplesmente joguei fora o marcador <form>, e ele ficou assim:

arquivo resources > views > livewire > lprevisao.blade.php (parcial)
        <div class="flex">
            <input class="w-[100px] text-right border py-0" wire:model=venda
                 name=venda autofocus autocomplete="off" required>
            <input class="w-[100px] text-right border py-0" wire:model=tarifa
                 wire:change="incluir" name=tarifa required autocomplete="off">
        </div>

arquivo app > Livewire > Lprevisao.php
<?php
namespace App\Livewire;
use App\Models\tbdiario;
use App\Models\tbmercado;
use App\Models\tbprevisao;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Livewire\Component;
use Livewire\Attributes\Layout;

#[Layout('components.layouts.app',['titulo'=>'Previsão'])]
class Lprevisao extends Component {

    public $liquido,$mercado,$painel,$tarifa,$total,$venda;
    public $inputs=[];

    function apagar() {
        tbmercado::truncate();
        $this->mercado=tbmercado::all();
    }

    function atualizar($index,$conta) {
        $valor=deca($this->inputs[$index]);
        tbprevisao::where('conta',$conta)->update(['valor'=>$valor]);
        $this->painel=DB::table('tbprevisao')->join('tbw', 'tbprevisao.conta', '=', 'tbw.conta')
            ->orderBy('tbprevisao.conta')->get();
        $this->inputs=[];
        foreach($this->painel as $p) {
            $this->inputs[] = dec($p->valor);
        }
    }

    function incluir() {
        $this->venda=deca($this->venda);
        $this->tarifa=deca($this->tarifa);
        $this->liquido=$this->venda - $this->tarifa;
        tbmercado::create(['venda'=>$this->venda,'tarifa'=>$this->tarifa,'conta'=>$this->liquido]);
        $this->venda=$this->tarifa=$this->liquido='';
        $this->mercado=tbmercado::all();
    }

    function mount() {
        $balancete = new Lbalancete();
        $balancete->tbw(new Request(['opcao'=>1]));
        $this->mercado=tbmercado::all();
        $this->total = DB::table('tbmercado')->select(
            DB::raw('SUM(venda) as tvenda'), DB::raw('SUM(tarifa) as ttarifa'),
            DB::raw('SUM(conta) as tconta'))->first();
        $this->painel=DB::table('tbprevisao')->join('tbw', 'tbprevisao.conta', '=', 'tbw.conta')
            ->orderBy('tbprevisao.conta')->get();
        foreach($this->painel as $p) {
            $this->inputs[] = dec($p->valor);
        }
    }

}

 

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...