Как использовать пользовательский запрос (make: request)? (laravel) Метод App \ Http \ Requests \ Custom :: doesExistI не существует - PullRequest
0 голосов
/ 11 апреля 2019

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

Я создал 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

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

Ответы [ 5 ]

2 голосов
/ 11 апреля 2019

В ProfileRequest изменение распространяется FormRequest до 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; в вышеприведенный контроллер.

0 голосов
/ 11 апреля 2019

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

use Illuminate\Foundation\Http\FormRequest;

до

use Illuminate\Http\FormRequest;

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

php artisan config:cache 
composer dumpautoload
0 голосов
/ 11 апреля 2019

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

Вы должны импортировать ProfileRequest вместо Request на свой контроллер,

только это:

use App\Http\Requests\ProfileRequest;
0 голосов
/ 11 апреля 2019

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

use App\Http\Requests\ProfileRequest;


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

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

0 голосов
/ 11 апреля 2019

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

нравится: use App\Http\Requests\ProfileRequest

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

...