Laravel 9, неопределенная переменная $users

Пожалуйста, помогите мне, я новичок в 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 15.03.2024 08:40

@Repox добавил все сообщения об ошибках, надеюсь, это поможет.

Get Excited 15.03.2024 13:42
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
125
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема в том, что вы включаете crud пользователей в панель мониторинга, но контроллер adminDashboard не передает список пользователей для использования при отображении раздела панели мониторинга.

Убедитесь, что везде, где вы хотите отобразить список пользователей, вы передаете этот список из контроллера.

Недостаточно передать список пользователей из UserController, поскольку вы никогда не получаете доступ к этому контроллеру, когда показываете панель мониторинга из контроллера adminDashboard.

Другие вопросы по теме