Исключение отражения класса запроса Laravel не существует - PullRequest
0 голосов
/ 03 июня 2018

Я получаю сообщение об ошибке, используя класс запроса RolesRequest в своей функции хранилища на контроллере, мой контроллер находится в папке Admin под контроллерами.Когда я изменяю имя только на RoleRequest, я все еще получаю ту же ошибку, и я не знаю почему, я пытался сделать дамп-автозагрузку компоновщика, но это не помогает, я все еще получаю ту же ошибку.Я использую laravel 5.5.4 Я думаю,

Сообщение об ошибке:

Class App\Http\Requests\RolesRequest does not exist", exception: "ReflectionException"

// Контроллер

<?php

namespace App\Http\Controllers\Admin;

use App\Role;
use App\Http\Controllers\Controller;
use App\Http\Requests\RolesRequest;
use Illuminate\Http\Request;

class RolesController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('admin.roles');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(RolesRequest $request)
    {
        dd('hit');
    }
}

// RolesRequest Class

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class RolesRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return Auth::user()->hasRole('Admin');
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        switch($this->method())
        {
            case 'GET':
            case 'DELETE':
            {
                return [];
            }
            case 'POST':
            {
                $unique = [
                    'name'      => 'required|min:3|max:30|unique:roles,name',
                ];
                break;
            }
            case 'PUT':
            case 'PATCH':
            {
                $unique = [
                    'name'     => 'required|min:3|max:30|unique:roles,name,'. $this->id
                ];
                break;            
            }
            default:break;
        }      

        $rules = [
            'display_name' => 'required|min:4|max:50',
            'description'  => 'required|min:10|max:100'
        ]  

        return $unique + $rules;
    }
}

1 Ответ

0 голосов
/ 03 июня 2018

Это один из тех забавных моментов, когда происходит более 1 ошибки.Вы видите вторую ошибку.Первая ошибка - сбой синтаксического анализатора при синтаксической ошибке в классе, который вы пытаетесь использовать.Он пытается загрузить этот файл и завершается неудачно, поэтому файл никогда не загружается, поэтому класс не может быть найден (вторая ошибка).

Возможно, показанная здесь ошибка (2/2) в ошибкестр.Проверьте свой журнал ошибок, чтобы увидеть, показывает ли он ошибку до того, как вы видите ошибку "Class not существует".

Файл RolesRequest имеет синтаксическую ошибку перед return.Оператор определения массива не имеет точки с запятой в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...