1
resposta

Como passar os dados do controller para uma view no Laravel?

Olá, estou desenvolvendo uma aplicação em Laravel e estou com um problema para passar os dados do controlador para uma view.

No meu UsuarioController, tenho a seguinte função index():

public function index()
{
    $usuariosCadastrados = Usuarios::all(); // Busca todos os usuários do banco
    return $usuariosCadastrados;
}

Na view usuarios-cadastrados.blade.php, eu já tenho uma estrutura montada da tabela para exibir os dados:

<x-layout titulo="Usuários Cadastrados">
    <h2>Usuários Cadastrados</h2>

    <table class="table table-hover">
        <thead>
            <tr>
                <th scope="col">Nome Completo</th>
                <th scope="col">CPF</th>
                <th scope="col">Data de Nasc.</th>
            </tr>
        </thead>
        <tbody> 
            @foreach ($usuariosCadastrados as $usuarioCadastrado)
            <tr>
                <th scope="row">{{$usuarioCadastrado['nome_Usuario']}}</th>
                <td>{{$usuarioCadastrado['CD_Usuario']}}</td>
                <td>{{$usuarioCadastrado['DT_Nasc_Usuario']}}</td>
            </tr>
            @endforeach
        </tbody>
    </table>
</x-layout>

Porém, estou recebendo um erro de "Undefined variable $usuariosCadastrados". Não sei o que pode estar acontecendo, já que aparentemente estou passando a variável corretamente para a view.

Alguém pode me ajudar a entender o que estou fazendo de errado?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá!

No seu UsuarioController, altere a função index() para:

public function index()
{
    $usuariosCadastrados = Usuarios::all(); 
    return view('usuarios-cadastrados', ['usuariosCadastrados' => $usuariosCadastrados]);
}

Com essa alteração, você está dizendo ao Laravel para renderizar a view usuarios-cadastrados e passar a variável $usuariosCadastrados para ela. Isso deve resolver o erro de "Undefined variable $usuariosCadastrados".

Espero ter ajudado e bons estudos!