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

Eu não queria estudar Liveware


Frank K Hosaka

Pergunta

O Laravel 12 não dá suporte para o Breeze com Blade, logo a opção menos ruim para mim foi escolher o Laravel 12 com Livewire para eu ter o código de autenticação.

Para fazer o novo pacote funcionar na Hostinger, eu tive que usar o 

php artisan vendor:publish

e lá eu encontrei três publicações do Livewire que conseguiram fazer o Laravel funcionar na Hostinger, mas não consegui instalar o novo pacote do Livewire que se chama flux.

Eu tive que estudar o Liveware, para contorná-lo e fazer os meus códigos funcionarem.

Uma gambiarra aqui e outra ali, e finalmente eu consegui fazer o meu código funcionar.

Só que eu tenho um pequeno programa em JavaScript que não conseguiu rodar:

<script>
    function atualizar(custoAtual, custoAnterior, codprod) {
        confirma = confirm("Atualizar?\ncusto atual: " + custoAtual + "\ncusto anterior: " + custoAnterior);
        if (confirma) {
            xmlhttp = new XMLHttpRequest()
            url = "nfCusto"
            formData = new FormData()
            formData.append('custoAtual', custoAtual)
            formData.append('codprod', codprod)
            xmlhttp.open("POST", url, true)
            xmlhttp.send(formData)
            location.replace("nfAtualiza")
        }
    } 
</script>

Esse é o melhor código que eu já inventei, mas não consegui rodar dentro do Laravel 12, mesmo tentando implantar a rotina csrf dentro dele.

Tenho que reconhecer que o meu código não é seguro e o Laravel 12 está de parabéns por bloquear o XMLHttpRequest do JavaScript.

O núcleo do Liveware é a função render( ), mas eu encontrei a diretiva 
 

#[Layout('components.layouts.auth')]

que também faz a mesma coisa, mas eu não consegui usá-lo.
 

Pelo que eu pude entender, o Livewire pega o layout e tenta encaixar dentro dele o controlador e a página principal. Existe um pequeno tutorial chamado "counter" que eu consegui executar, e ao invés de ficar incrementando ou decrementando o contador, eu mudei tudo para alterar um registro no MySQL, isso foi sopa. O duro vai ser na hora que eu precisar trabalhar com um monte de registros do MySQL.

 

arquivo app > Livewire > Counter.php
<?php
namespace App\Livewire;
use App\Models\tbprevisao;
use Livewire\Component;

class Counter extends Component {
    public $teste = "olá mundo";
    function __construct() {
        $this->teste=tbprevisao::where('conta',101)->value('valor');
    }
    function atualiza() {
        tbprevisao::where('conta',101)->update(['valor'=>$this->teste]);
    }
    function render() { return view('livewire.counter'); }
}

arquivo resources > views > components > layouts > app.blade.php 
// isso é minha gambiarra, faça um backup do arquivo original para você não se arrepender
{{ $slot }}

arquivo resources > views > livewire > counter.blade.php
<div>
    <form wire:submit="atualiza">
        <input wire:model="teste" />
        <button type="submit">Atualizar</button>
    </form>
</div>

arquivo routes > web.php
use App\Livewire\Counter;
use App\Livewire\Settings\Appearance;
use App\Livewire\Settings\Password;
use App\Livewire\Settings\Profile;
use Illuminate\Support\Facades\Route;
Route::get('counter',Counter::class);



 

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