繁体   English   中英

类App \\ Http | Controllers \\ ValidateRegistraion不存在

[英]Class App\Http|Controllers\ValidateRegistraion does not exist

我已经使用php artisan make:request ValidateRegistration创建了一个表单请求。 它在App\\Http\\Requests\\目录下创建了ValidateRegistration.php文件。 之后,我对注册控制器的store()函数进行了更改,即UserController.php ,这意味着我已经对其进行了更改

public function store(Request $request)
{   
    // Save the data
    User::create(request(['fname','lname','phone','email','password']));

    // redirect to home page
    return redirect('/registration-success');
}

public function store(ValidateRagistration $request)
{   
    // Save the data
    User::create(request(['fname','lname','phone','email','password']));

    // redirect to home page
    return redirect('/registration-success');
}

并添加use App\\Http\\Requests\\ValidateRagistration; UserController.php文件的顶部。 但是,当我提交表单而不填写任何内容时,它显示出一个错误,该错误是Class App\\Http\\Controllers\\ValidateRegistraion does not exist

编辑

添加了UserController.phpValidateRegistration.php文件。

UserController.php

<?php

use App\Http\Requests\ValidateRegistration;

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\User;

class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $title = "Registration";
        return view('/registration', compact('title'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(ValidateRegistration $request)
    {
        //// validate requested data
        //$this->validate(request(), [
        //    'fname'     => 'required',
        //    'lname'     => 'required',
        //    'phone'     => 'required|size:10',
        //    'email'     => 'required',
        //    'password'  => 'required'
        //]);

        // Save the data
        User::create(request(['fname','lname','phone','email','password']));

        // redirect to home page
        return redirect('/registration-success');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

ValidateRegistration.php

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

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

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'fname'     => 'required',
            'lname'     => 'required',
            'phone'     => 'required|size:10',
            'email'     => 'required',
            'password'  => 'required'
        ];
    }

    /**
    * Get the error messages for the defined validation rules.
    *
    * @return array
    */
    public function messages()
    {
        return [
            'fname.required' => 'Firstname is mandatoy',
            'lname.required'  => 'Lastname is mandatory',
            'phone.required'  => 'Phone is mandatory',
            'phone.size'  => 'Phone must be 10 digit',
            'email.required'  => 'Email is mandatory',
            'password.required'  => 'Password is mandatory',
        ];
    }
}

找出班级名称的差异:

验证注册
验证注册

我猜它应该读ValidateRegistration ,清除错别字,他们只会在以后混淆

在UserController.php的顶部交换namespace的位置并use行, namespace应始终位于第一个

<?php
namespace App\Http\Controllers;

use App\Http\Requests\ValidateRegistration;

use Illuminate\Http\Request;

use App\User;

ValidateRegistration.php在您的App \\ Http \\ Requests目录中

在ValidateRegistration.php中,我修改了authorize()函数。 它返回了false 将其更改为true 现在正在工作。

public function authorize()
{
    return false;
}

public function authorize()
{
    return true;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM