Пожалуйста, помогите мне, я новичок в Laravel. Я пытаюсь просмотреть данные из своей таблицы, но появляется эта ошибка. Я уже пробовал разные методы, но все безуспешно и использую Laravel 9.
И извините, если в прошлом на эту проблему часто отвечали, я не нашел ни одного решения, которое сработало бы для меня, я сижу над этой проблемой сейчас 2 дня (я чувствую себя немного глупо).
Все сообщения об ошибках.
Неопределенная переменная $users
Строка: 11 в usercrud.blade.php
@foreach ($users как $user)
\resources\views\includes\users\usercrud.blade.php: 11
\resources\views\includes\users\usercrud.blade .php: 11 требуется
Illuminate\Foundation\Bootstrap\HandleExceptions: 11 handleError
\resources\views\admin\dashboard.blade.php:8 требуется
приложение -> http -> контроллер -> UserController
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
$users = User::orderBy('id')->paginate(10);
return view('includes.users.usercrud', compact('users'));
}
public function create()
{
return view('includes.users.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required',
]);
User::create($request->all());
return redirect()->route('includes.users.usercrud')
->with('success', 'User created successfully.');
}
public function edit(User $user)
{
return view('includes.users.edit', compact('user'));
}
public function update(Request $request, User $user)
{
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email,' . $user->id,
]);
$user->update($request->all());
return redirect()->route('includes.users.usercrud')
->with('success', 'User updated successfully.');
}
public function destroy(User $user)
{
$user->delete();
return redirect()->route('includes.users.usercrud')
->with('success', 'User deleted successfully.');
}
}
просмотры -> включает -> пользователи -> usercrud.blade.php
<h1>User List</h1>
<a href = "{{ route('includes.users.create') }}">Create New User</a>
<table border = "1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Role</th>
<th>Actions</th>
</tr>
@foreach ($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->role }}</td>
<td>
<a href = "{{ route('includes.users.edit', $user->id) }}">Edit</a>
<form method = "POST" action = "{{ route('includes.users.destroy', $user->id) }}">
@csrf
@method('DELETE')
<button type = "submit">Delete</button>
</form>
</td>
</tr>
@endforeach
</table>
{{ $users->links() }}
просмотры -> администратор -> Dashboard.blade.php
@extends('layouts.app')
@section('content')
<div class = "container mt-4 text-light">
<h2>Welcome to the Admin Dashboard!</h2>
</div>
<div>
@include('includes.users.usercrud')
</div>
@endsection
маршруты -> Интернет
use App\Http\Controllers\AuthController;
use App\Http\Controllers\AdminController;
use App\Http\Controllers\UserController;
use App\Http\Middleware\AdminMiddleware;
Route::group(['middleware' => ['admin']], function () {
Route::get('admin/dashboard', [AdminController::class, 'adminDashboard'])->name('admin.dashboard');
Route::get('/users', [UserController::class, 'index'])->name('includes.users.usercrud');
Route::get('/users/create', [UserController::class, 'create'])->name('includes.users.create');
Route::post('/users/store', [UserController::class, 'store'])->name('includes.users.store');
Route::get('/users/{user}/edit', [UserController::class, 'edit'])->name('includes.users.edit');
Route::put('/users/{user}', [UserController::class, 'update'])->name('includes.users.update');
Route::delete('/users/{user}', [UserController::class, 'destroy'])->name('includes.users.destroy');
});
Я уже пробовал много других методов из stackoverflow, но по какой-то причине у меня это не сработало. Также посмотрел глобальные переменные, но они тоже не работают.
@Repox добавил все сообщения об ошибках, надеюсь, это поможет.
Проблема в том, что вы включаете crud пользователей в панель мониторинга, но контроллер adminDashboard не передает список пользователей для использования при отображении раздела панели мониторинга.
Убедитесь, что везде, где вы хотите отобразить список пользователей, вы передаете этот список из контроллера.
Недостаточно передать список пользователей из UserController, поскольку вы никогда не получаете доступ к этому контроллеру, когда показываете панель мониторинга из контроллера adminDashboard.
Каково точное сообщение об ошибке?