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

O cadastro de clientes no Livewire


Frank K Hosaka

Pergunta

Não consegui usar a tecnologia Livewire com o marcador <details>, assim eu improvisei com um $modal. O seguinte código funciona no ambiente Hostinger:

Lpessoas.php
<?php
namespace App\Livewire;
use App\Models\tbpessoa;
use Livewire\Attributes\Layout;
use Livewire\Component;

#[Layout('components.layouts.app',['titulo'=>'Pessoas'])]
class Lpessoa extends Component {

    public $modal, $pessoas;

    function definirModal($i) { $this->modal=$i; }

    function mount() {
        $this->pessoas=tbpessoa::orderBy('pessoa')
            ->take(10)->get()->toArray();
    }

}
?>

lpessoa.blade.php
<div>
    @foreach($pessoas as $i => $pessoa)
        <div class="odd:bg-gray-200 flex">
            <div class="w-[60px] text-right px-2">{{ $pessoas[$i]['codp'] }}</div>
            <div wire:click="definirModal({{$i}})">
                @if($pessoa['vinculo'])
                    <svg width="16" height="16" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><polygon points="50,75 25,25 75,25" style="fill:red;" /></svg>
                @else
                    <svg width="16" height="16" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><polygon points="50,75 25,25 75,25" style="fill:black;" /></svg>
                @endif
            </div>
            <input wire:model="pessoas.{{$i}}.pessoa"  class="px-2" />
        </div>
        @if($modal===$i) // aqui usei o operador estritamente igual === para diferenciar o null de 0
            <div class=flex>
                <div class=font-semibold>Endereço:</div>
                <input wire:model="pessoas.{{$i}}.end"  class="px-2" />
            </div>
            <div class=flex>
                <div class=font-semibold>CPF CNPJ:</div>
                <input wire:model="pessoas.{{$i}}.cnpj"  class="px-2" />
            </div>
            <div class=flex>
                <div class=font-semibold>Telefone:</div>
                <input wire:model="pessoas.{{$i}}.tel"  class="px-2" />
            </div>
            <div class=flex>
                <div class=font-semibold>Nota:</div>
                <input wire:model="pessoas.{{$i}}.nota"  class="px-2" />
            </div>
            <div class=flex>
                <div class=font-semibold>Vínculo:</div>
                <input wire:model="pessoas.{{$i}}.vinculo"  class="px-2" />
            </div>
        @endif
    @endforeach
</div>

 

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