Frank K Hosaka Postado Março 27 Denunciar Share Postado Março 27 (editado) arquivo app > Liveware > 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',['title'=>'Previsão'])] class Lprevisao extends Component { public $conta,$mercado,$painel,$total,$valor=[]; public function alterar($index,$conta) { $valor=deca($this->valor[$index]); tbprevisao::where('conta',$conta)->update( ['valor'=>$valor]); return $this->mount(); } public 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(); } } arquivo resources > views > livewire > lprevisao.blade.php <div> <div class="flex"> <div class="w-[50px] text-right">Conta</div> <div class="w-[130px] px-2">Descricao</div> <div class="w-[150px] text-right">Previsão</div> <div class="w-[150px] text-right">Contábil</div> <div class="w-[150px] text-right">Divergência</div> </div> <?php foreach($painel as $index => $p): ?> <div class=flex> <div class="w-[50px] text-right"><?=$p->conta?></div> <div class="w-[188px] ml-2 truncate"><?=$p->descricao?></div> <div class="w-[130px] py-0"> <input class="w-[130px] text-right py-0 border-none" wire:model="valor.{{$index}}" wire:change="alterar({{$index}},{{$p->conta}})" value=<?=dec($p->valor)?>> </div> <div class="w-[130px] text-right"><?=dec($p->fim)?></div> <div class="w-[130px] text-right"> <?=dec(abs(round($p->valor - $p->fim,2)))?> </div> </div> <?php endforeach;?> </div> Editado Março 27 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Março 28 Autor Denunciar Share Postado Março 28 (editado) O código que eu publiquei não funcionou na Hostinger, há muito erro de lógica que o Copilot encontrou. Ele disse que eu não posso executar a função mount( ) mais de uma vez. Para emparelhar a variável array( ) do Livewire com wire:model no blade, você precisa ter cereteza que o array( ) não está vazio, senão não vai aparecer nada no Blade. 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',['title'=>'Previsão'])] class Lprevisao extends Component { public $mercado,$painel,$total; public $inputs=[]; public 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); } } public 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); } } } arquivo lprevisao.blade.php div> <div class="flex"> <a href=diarioInicio class="w-[100px] text-blue-700">Diario</a> <a href=previsaoPoupanca class="w-[100px] text-blue-700">Poupança</a> </div> <div class="flex"> <div class="w-[50px] text-right">Conta</div> <div class="w-[130px] px-2">Descricao</div> <div class="w-[150px] text-right">Previsão</div> <div class="w-[150px] text-right">Contábil</div> <div class="w-[150px] text-right">Divergência</div> </div> <?php foreach($painel as $key => $p): ?> <div class=flex> <div class="w-[50px] text-right"><?=$p->conta?></div> <div class="w-[188px] ml-2 truncate"><?=$p->descricao?></div> <div class="w-[130px] py-0"> <input class="w-[130px] text-right py-0 border-none" wire:model.defer="inputs.{{$key}}" wire:change="atualizar({{$key}},{{$p->conta}})"> </div> <div class="w-[130px] text-right"><?=dec($p->fim)?></div> <div class="w-[130px] text-right"> <?=dec(abs(round($p->valor - $p->fim,2)))?> </div> </div> <?php endforeach;?> </div> Editado Março 28 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Frank K Hosaka
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.