Как использовать индивидуальный запрос (сделать: запрос)? (laravel) Метод App \ Http \ Requests \ Custom :: doesExistI не существует

Я создал специальный запрос, чтобы провести собственную проверку. Поскольку я следую этой статье.

Я создал ProfileRequest

php artisan make:request ProfileRequest

В моем ProfileRequest

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ProfileRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required|min:10',
            'age' => 'required|numeric'
        ]; 
    }
}


Моя проблема в том, что я использую ProfileRequest внутри контроллера, как показано ниже:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
class ProfileController extends Controller
{
    public function update(ProfileRequest $request){
        return "123";
    }
}

Он возвращает ошибку, подобную приведенной ниже:

Class App\Http\Controllers\ProfileRequest does not exist

Мне нужна ваша помощь, господа. Кто-нибудь знает, как использовать кастомный запрос?


person gecko    schedule 11.04.2019    source источник
comment
@PrinceKumarDwivedi Сэр, он возвращает ошибку. Класс App \ Http \ Controllers \ ProfileRequest не существует. И, кстати, ProfileRequest, который я сделал, - это запрос, хранящийся в App / Http / Requests /   -  person gecko    schedule 11.04.2019
comment
Извините за мою ошибку, используйте App \ Http \ Requests \ ProfileRequest; попробуй это правильно.   -  person Prince Kumar Dwivedi    schedule 11.04.2019
comment
он возвращает ошибку сэр Class App\Http\ProfileRequest does not exist   -  person gecko    schedule 11.04.2019


Ответы (6)


В ProfileRequest измените extends FormRequest на extends Request. Затем добавьте use Illuminate\Http\Request; над классом. Код должен выглядеть, как показано ниже.

<?php

namespace App\Http\Requests;

use Illuminate\Http\Request;

class ProfileRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required|min:10',
            'age' => 'required|numeric'
        ]; 
    }
}

Затем вставьте App\Http\Requests\ProfileRequest; в свой контроллер.

person Shuvojit    schedule 11.04.2019
comment
Я сделал это, но возвращает ошибку Сэр Class 'App\Http\Requests\Request' not found - person gecko; 11.04.2019
comment
Также добавьте use Illuminate\Http\Request; поверх ProfileRequest - person Shuvojit; 11.04.2019

создать ProfileRequest

php artisan make:request Profile/ProfileRequest

внутри ProfileRequest

<?php

namespace App\Http\Requests\Profile;

use Illuminate\Foundation\Http\FormRequest;

class ProfileUpdate extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
         return [
            'name' => 'required|min:10',
            'age' => 'required|numeric'
        ]; 
    }
}

Затем поместите use App\Http\Requests\Profile\ProfileRequest в контроллер.

person Anil Stha    schedule 21.01.2020

Вы импортировали use Illuminate\Http\Request;

Вам нужно импортировать ProfileRequest вместо Request на вашем контроллере,

только это:

use App\Http\Requests\ProfileRequest;
person Sethu    schedule 11.04.2019
comment
Сэр, он возвращает ошибку Method App\Http\Requests\ProfileRequest::doesExistI does not exist. вы можете проверить код моего ProfileRequest Сэр, я думаю, что проблема в этом, я не уверен - person gecko; 11.04.2019
comment
не могли бы вы добавить сюда свой полный ProfileController класс и ProfileRequest класс? - person Sethu; 11.04.2019
comment
это мой полный ProfileController сэр - person gecko; 11.04.2019

Попробуйте с этим, прежде всего вам нужно импортировать запрос в свой контроллер,

use App\Http\Requests\ProfileRequest;


 $validated = $request->validated();
        if ($validated) {
             // ...
         }

Надеюсь это поможет :)

person Maulik Shah    schedule 11.04.2019
comment
Сэр, он возвращает ошибку Method App\Http\Requests\ProfileRequest::doesExistI does not exist.. Я думаю, проблема в ProfileRequest кодах, сэр - person gecko; 11.04.2019
comment
Я заметил, сэр, в статье Хорошо, специальный запрос расширяет запрос. Вы можете проверить это для меня, сэр. спасибо за ответ - person gecko; 11.04.2019
comment
На самом деле я реализовал это с помощью FormRequest, в то время я не знал этого с запросом. Нет проблем, спасибо за этот учебник. Вы можете проверить это с помощью composer dump-autoload. - person Maulik Shah; 11.04.2019
comment
Я пробовал composer dump-autoload, но все равно возвращает эту ошибку Method App\Http\Requests\ProfileRequest::doesExistI does not exist. Я действительно не знаю, что с этим не так. - person gecko; 11.04.2019
comment
Пробовал php artisan cache:clear, но все равно возвращает ту же ошибку :( - person gecko; 11.04.2019
comment
попробуйте с new ProfileRequest в параметре метода - person Maulik Shah; 11.04.2019
comment
ошибка Сэр syntax error, unexpected 'new' (T_NEW), expecting variable (T_VARIABLE) - person gecko; 11.04.2019
comment
Что-то причудливое - person Maulik Shah; 11.04.2019

Вам необходимо импортировать App\Http\Requests\ProfileRequest в свой контроллер

как 2_

затем попробуйте: composer dumpautoload, php artisan cache:clear

person Johhn    schedule 11.04.2019
comment
Сэр, он возвращает ошибку Class App\Http\Controllers\ProfileRequest does not exist. И, кстати, ProfileRequest, который я сделал, - это запрос, хранящийся в App/Http/Requests/ - person gecko; 11.04.2019
comment
Я попробовал сэр, но выдает такую ​​ошибку Method App\Http\Requests\ProfileRequest::doesExistI does not exist. вы можете проверить коды моего ProfileRequest сэра для меня. Благодарю за ваш ответ - person gecko; 11.04.2019

В вашем ProfileRequest.php измените

use Illuminate\Foundation\Http\FormRequest;

to

use Illuminate\Http\FormRequest;

А потом просто

php artisan config:cache 
composer dumpautoload
person khllifi zakaria    schedule 11.04.2019
comment
Сэр, он возвращает Class 'Illuminate\Http\FormRequest' not found - person gecko; 11.04.2019
comment
Вы изменили "использовать Illuminate \ Http \ Request;" использовать Illuminate \ Http \ FormRequest; в вашем контроллере? - person khllifi zakaria; 11.04.2019
comment
Я изменил, но эта другая ошибка возвращает Class App\Http\Controllers\ProfileRequest does not exist - person gecko; 11.04.2019
comment
добавьте это в начало пространства имен вашего контроллера App \ Http \ Controllers; - person khllifi zakaria; 11.04.2019
comment
да, сэр, у меня это namespace App\Http\Controllers; в моем контроллере - person gecko; 11.04.2019