簡體   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