0

laravelで登録システムを作っています。Google からさまざまな方法を試しましたが、どれも機能しません。

間違った電子メール形式を入力したときに、それが間違っているというメッセージが表示され、値 = "" にすべて記録されていることが必要です。

マイ AccountController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;


class AccountController extends Controller
{
    public function getcreate(){
        return view('account.create');
    }

    public function postcreate(){
        $validator = Validator::make(request()->all(), 
        array(
            'email'  =>      'required|max:50|email|unique:users',
            'username' =>    'required|max:20|min:3|unique:users',
            'password' =>    'required|min:6',
            'repeat_pass' => 'required|same:password'   
        ));

        if($validator->fails()){
            return redirect()->route('account-create')->withErrors($validator)->withInput();
        }
        else{

        }
    }
}

私の create.blade.php

@extends ('layout.main')

@section ('content')

    <form action="{{ URL::route('account-create-post') }}" method="post">

            <div class="field">
                Email: <input type="text" name="email" placeholder="Email"{{ (old( 'email' )) ? ' value="'. e(old())  .'"' : ''    }}>
                @if($errors->has('email'))
                        {{ $errors->first('email') }}
                @endif
            </div>
            <div class="field">
                Username: <input type="text" name="username" placeholder="Username">
                @if($errors->has('uesrname'))
                        {{ $errors->first('username') }}
                @endif
            </div>
            <div class="field">
                Password: <input type="password" name="password" placeholder="Passowrd">
                @if($errors->has('password'))
                        {{ $errors->first('password') }}
                @endif
            </div>
            <div class="field">
                Repeat Password: <input type="password" name="repeat_pass" placeholder="Repeat Pssword">
                @if($errors->has('repeat_pass'))
                        {{ $errors->first('repeat_pass') }}
                @endif
            </div>


            <input type="submit" value="Create Account">
            @csrf
    </form>
@stop 

私が試したインターネットからの方法

value="{{ old('email') }}"
value="{{!! old('email') !!}}"
4

2 に答える 2

0

このoldメソッドは、エラー メッセージを表示するのではなく、以前にフラッシュされた入力データをセッションから取得します。

エラーメッセージを表示するには、次を使用する必要があります@error

<div class="field">
    Email: <input type="text" name="email" placeholder="Email" value="{{ old('email') }}">

    @error('email')
        <strong>{{ $message }}</strong>
    @enderror
</div>
于 2020-03-18T03:33:13.247 に答える