Como criar a página visualizar com Laravel 11 e React


Neste tutorial, será apresentado como criar a página de visualização com Laravel 11 + Breeze + React.

Primeiramente, será demonstrado como enviar o ID do registro na URL utilizando React.

Em seguida, será explicado como recuperar as informações do usuário no banco de dados com Laravel.

Por fim, será mostrado como implementar a página com Laravel, React e Breeze para visualizar os detalhes do usuário.

Download do código fonte desenvolvido na aula: Download

PlayList sobre Laravel 11 + Breeze + React 11: Acessar

Receber as aulas gratuitas do curso de Laravel: Acessar


Para começar, é utilizado como base o projeto da aula "Como listar registro do banco de dados com Laravel 11 e React".

Criada a rota no arquivo "routes/web.php".

Route::get('/user/{user}', [UserController::class, 'show'])->name('users.show');

Criado o método "show" na controller "app/Http/Controllers/UserController.php". O método é responsável em recuperar as informações do registro do banco de dados e também carregar a view.

public function show(User $user): Response
{
    // dd($user);
    return Inertia::render('Users/UserShow', ['user' => $user]);
}

Criada a view com React no Laravel, em "resources/js/Pages/Users/UserShow.js" para exibir as informações do registro recuperado do banco de dados.

import PrimaryButton from '@/Components/Button/PrimaryButton';
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
import { Head, Link } from '@inertiajs/react';

export default function UserIndex({ auth, user }) {
    return (
        <AuthenticatedLayout
            user={auth.user}
            header={<h2 className="font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight">Usuário</h2>}
        >
            <Head title="Usuário" />

            <div className="py-4 max-w-7xl mx-auto sm:px-6 lg:px-8">
                <div className="overflow-hidden bg-white shadow-lg sm:rounded-lg dark:bg-gray-800">
                    <div className="flex justify-between items-center m-4">
                        <h3 className="text-lg">Visualizar</h3>
                        <div className="flex space-x-4">
                            <Link href={route('users.index')}>
                                <PrimaryButton>Listar</PrimaryButton>
                            </Link>
                        </div>
                    </div>

                    {/* Imprimir os dados do usuário */}
                    <div className="bg-gray-50 text-sm dark:bg-gray-700 p-4 rounded-lg shadow-md">
                        <div className="mb-4">
                            <p className="text-md font-semibold text-gray-700 dark:text-gray-200">ID</p>
                            <p className="text-gray-600 dark:text-gray-400">{user.id}</p>
                        </div>

                        <div className="mb-4">
                            <p className="text-md font-semibold text-gray-700 dark:text-gray-200">Nome</p>
                            <p className="text-gray-600 dark:text-gray-400">{user.name}</p>
                        </div>

                        <div className="mb-4">
                            <p className="text-md font-semibold text-gray-700 dark:text-gray-200">E-mail</p>
                            <p className="text-gray-600 dark:text-gray-400">{user.email}</p>
                        </div>

                    </div>
                </div>
            </div>
        </AuthenticatedLayout>
    );
}

Baixar o código-fonte completo do projeto.

Bom, era isso. Espero que o tutorial tenha sido útil!