Estou usando o Laravel 11, com o Breeze Starter Kit e o Livewire (Volt Class API) com Alpine.
Em um controlador chamado 'DashboardController', estou tentando usar 'Auth::user' para renderizar uma visualização com as tarefas que o usuário tem, mas ele não reconhece 'user'. Já fiz isso algumas vezes antes, mas nunca obtive esse erro. O mais estranho é que no arquivo blade ele reconhece Auth::user, então, neste ponto, não sei mais o que fazer, não encontrei mais ninguém com esse problema.
PainelControlador
<?php
namespace App\Http\Controllers;
use Illuminate\Container\Attributes\Auth;
use Illuminate\Foundation\Auth\User as AuthUser;
class DashboardController extends Controller
{
public function index(){
/* $user = Auth::user(); */
$user = Auth::user();
$tasks = Auth::user()->tasks;
return view ('dashboard', compact('tasks'));
}
}
painel.blade.php
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
{{ __('Dashboard') }}
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
<div class="p-6 text-gray-900">
@foreach (Auth::user()->tasks as $task)
<p> {{ $task->title }}</p>
<p> {{ $task->description }}</p>
@endforeach
</div>
</div>
</div>
</div>
</x-app-layout>
tabela de usuários
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
//add deleted_at column
$table->softDeletes();
});
modal do usuário
<?php
namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use HasFactory, Notifiable;
use SoftDeletes;
protected $fillable = [
'name',
'email',
'password',
];
protected $hidden = [
'password',
'remember_token',
];
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}
public function tasks(): HasMany
{
return $this->hasMany(Task::class);
}
}
web.php (o route::get é o que estou tentando alcançar)
<?php
use App\Http\Controllers\DashboardController;
use Illuminate\Support\Facades\Route;
Route::redirect('/','/dashboard');
Route::get('/dashboard', [DashboardController::class, 'index'])
->middleware(['auth'])
->name('profile');
Route::view('profile', 'profile')
->middleware(['auth'])
->name('profile');
require __DIR__.'/auth.php';
Por favor me ajude, sou apenas um estagiário