Laravel 7 старых проблем ввода электронной почты - PullRequest
0 голосов
/ 18 марта 2020

Я делаю систему регистрации с 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 

Пути из целых rnet Я пробовал

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

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Вы можете отобразить сообщение об ошибке на блейде, используя это:

                                      @if (count($errors) > 0)
                                        <div class="alert alert-danger alert-dismissible" role="alert">
                                            <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span>
                                            </button>
                                            <strong>Error!</strong> 
                                            @foreach ($errors->all() as $error)
                                            <p>{{ $error }}</p>
                                            @endforeach
                                        </div>
                                        @endif
0 голосов
/ 18 марта 2020

Метод old будет извлекать ранее записанные входные данные из сеанса, а не отображать сообщение об ошибке.

Чтобы отобразить сообщение об ошибке, следует использовать @error:

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

    @error('email')
        <strong>{{ $message }}</strong>
    @enderror
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...