Solo como introducción a esto, he revisado la mayoría de las respuestas que están alineadas con mi pregunta, prácticamente tengo una variable indefinida para el usuario.
Quiero poder mostrar al usuario registrado en el tablero, usé este código antes y funcionó, pero no para esta aplicación.
Undefined variable: user (View: /Applications/MAMP/htdocs/eli/resources/views/dashboard.blade.php)
Aquí está mi código,
Controlador de usuario.php
namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\User; use App\Http\Requests; class UserController extends Controller { public function getWelcome() { return view('welcome'); } public function getDashboard() { $users = User::all(); return view('dashboard', compact('users')); } public function userSignUp(Request $request) { $this->validate($request, [ 'email' => 'required|email|unique:users', 'first_name' => 'required|max:120', 'password' => 'required|min:4' ]); $email = $request['email']; $first_name = $request['first_name']; $password = bcrypt($request['password']); $user = new User(); $user->email = $email; $user->first_name = $first_name; $user->password = $password; $user->save(); return redirect()->route('dashboard'); } public function postSignin(Request $request) { $remember = $request->input('remember_me'); if(Auth::attempt(['email'=> $request['email'], 'password' => $request['password']], $remember )){ return redirect()->route('dashboard'); } return redirect()->back(); } }
tablero.blade.php
@extends('layouts.layout') @section('title') Dashboard @endsection @section('content') <div class="container eli-main"> <div class="row"> <div class="col-md-6 col-md-12"> <h1>{{$user->username}}</h1> </div> </div> @endsection
Está pasando la colección $users
a la vista, por lo que debe iterar sobre ella si desea mostrar los nombres de todos los usuarios:
@foreach ($users as $user) {{ $user->username }} @endforeach
Si desea mostrar el nombre del usuario autenticado, simplemente haga esto en su lugar:
{{ auth()->user()->username }}