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

Livewire: tentando imitar o Excel


Frank K Hosaka

Pergunta

O código a seguir funciona no meu Window 11 / Apache. Na Hostinger Ubuntu / nginx, eu recebo a mensagem no web console assim: https://meusite/livewire/update, ele aparece na lista do php artisan list:route, eu só não sei como ver se o Laravel tem condição de ver essa pasta no ambiente do Hostinger, pelo menos eu não consigo ver essa pasta nem aqui no Windows.

Acredito que esse é um dos melhores códigos que eu já fiz, é uma pena que não funciona na Hostinger:

arquivo app > Livewire > Lteste.php
<?php
namespace App\Livewire;
use App\Models\tbprevisao;
use Illuminate\Support\Facades\DB;
use Livewire\Component;

class Lteste extends Component {

    public $id,$novoValor,$modal,$previsoes;

    function update() {
        $this->modal = false;
        $valor=deca($this->novoValor);
        tbprevisao::where('id',$this->id)->update(['valor'=>$valor]);
        $this->previsoes=DB::table('tbprevisao')->join('tbw', 'tbprevisao.conta', 'tbw.conta')
            ->orderBy('tbprevisao.conta')->get();
    }

    function mount() {
        $this->previsoes=DB::table('tbprevisao')->join('tbw', 'tbprevisao.conta', 'tbw.conta')
            ->orderBy('tbprevisao.conta')->get();
    }

    function selecionado($id) {
        $this->id = $id;
        $this->modal = true;
    }

}

arquivo resources > views >livewire > lteste.blade.php
<div>
    <div class="flex odd:bg-gray-200">
        <div class="w-[50px] text-right">Conta</div>
        <div class="w-[188px] px-2">Descricao</div>
        <div class="w-[130px] text-right">Previsão</div>
        <div class="w-[130px] text-right">Diario</div>
        <div class="w-[130px] text-right">Divergência</div>
    </div>
    @foreach($previsoes as $p)
        <div class="odd:bg-gray-200 flex" wire:click="selecionado({{ $p->id }})">
            <div class="w-[50px] text-right">{{$p->conta}}</div>
            <div class="w-[188px] px-2 truncate">{{$p->descricao}}</div>
            @if($modal && $id == $p->id)
                <div class="w-[130px] text-right">
                    <flux:input wire:model="novoValor" wire:change="update" size="xs" />
                </div>
            @else
                <div class="w-[130px] text-right">{{dec($p->valor)}}</div>
            @endif
            <div class="w-[130px] text-right">{{dec($p->fim)}}</div>
            <div class="w-[130px] text-right">
                {{dec(abs(round($p->valor - $p->fim + 0.0001,2)))}}
            </div>
        </div>
    @endforeach
</div>

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Eu publiquei a minha dúvida no fórum do Laracasts.com, mas eu tenho pouca esperança. Enquanto isso, pensei em transformar o Livewire num roteador, ficou uma grande gambiarra, mas pelo menos funciona no Hostinger:
 

arquivo app > Livewire > Lteste.php
<?php
namespace App\Livewire;
use App\Models\tbprevisao;
use Illuminate\Support\Facades\DB;
use Livewire\Component;

class Lteste extends Component {

    public $id,$modal,$previsoes;

    function mount() {
        if(request()->input("novoValor")){
            if(session()->has('id')){
                $this->id=session('id');
            }
            $this->modal=false;
            $valor=deca(request()->input("novoValor"));
            tbprevisao::where('id',$this->id)->update(['valor'=>$valor]);
        }
        if(request()->input("id")){
            $this->modal=true;
            $this->id=request()->input("id");
            session(['id'=>$this->id]);
        }
        $this->previsoes=DB::table('tbprevisao')->join('tbw', 'tbprevisao.conta', 'tbw.conta')
            ->orderBy('tbprevisao.conta')->get();
    }

}

arquivo resources > views > livewire > lteste.blade.php
<div>
    <div class="flex odd:bg-gray-200">
        <div class="w-[50px] text-right">Conta</div>
        <div class="w-[188px] px-2">Descricao</div>
        <div class="w-[130px] text-right">Previsão</div>
        <div class="w-[130px] text-right">Diario</div>
        <div class="w-[130px] text-right">Divergência</div>
    </div>
    @foreach($previsoes as $p)
        <div class="odd:bg-gray-200 flex">
            <div class="w-[50px] text-right">{{$p->conta}}</div>
            <div class="w-[188px] px-2 truncate">{{$p->descricao}}</div>
            @if($modal && $id == $p->id)
                <div class="w-[130px] text-right border border-black">
                    <form><input name="novoValor" wire:on class="w-[130px]" /></form>
                </div>
            @else
                <a href="?id={{$p->id}}" class="w-[130px] text-right">{{dec($p->valor)}}</a>
            @endif
            <div class="w-[130px] text-right">{{dec($p->fim)}}</div>
            <div class="w-[130px] text-right">
                {{dec(abs(round($p->valor - $p->fim + 0.0001,2)))}}
            </div>
        </div>
    @endforeach
</div>

 

Link para o comentário
Compartilhar em outros sites

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