Laravel Войти и зарегистрироваться - PullRequest
0 голосов
/ 21 апреля 2020

Привет, спасибо, что заглянули. Я очень новичок в этом фреймворке и назначен, чтобы помочь товарищу разработать логин и зарегистрироваться.

хорошо, вот моя проблема, у меня 2 основных проблемы с laravel 1-й вход и 2-я проверка регистра.

, поэтому я получил эту laravel программу, которая уже включает шаблон для их просмотра и должна работать только для входа в систему и регистрации части, но для входа в систему и регистрации я понимаю, что это то же самое поток (в контроллере, по крайней мере, как laravel, уже предоставленный, но по какой-то причине он не работает).

хорошо, позвольте мне показать мой код 1-й для части входа

вот мой логин

             <div class="card-body">
                                    <form method="POST" action="{{ route('login') }}">
                                    @csrf
                                    <!-- @csrf_field -->
                                        <div class="form-head">
                                            <!-- <a href="{{url('/')}}" class="logo"><img src="assets/images/logo_tmu.jpeg" class="img-fluid" alt="logo"></a> -->
                                            <img src="assets/images/logo_tmu.jpeg" class="img-fluid" alt="logo">

                                        </div>                                        
                                        <h4 class="text-primary my-4">Log in !</h4>
                                        <div class="form-group">
                                            <input type="text" class="form-control" id="username" placeholder="Enter Username here" required>
                                        </div>
                                        <div class="form-group">
                                            <input type="password" class="form-control" id="password" placeholder="Enter Password here" required>
                                        </div>
                                        <div class="form-row mb-3">
                                            <div class="col-sm-6">
                                                <div class="custom-control custom-checkbox text-left">
                                                  <input type="checkbox" class="custom-control-input" id="rememberme">
                                                  <label class="custom-control-label font-14" for="rememberme">Remember Me</label>
                                                </div>                                
                                            </div>
                                            <div class="col-sm-6">
                                              <div class="forgot-psw"> 
                                                <a id="forgot-psw" href="{{url('/user-forgotpsw')}}" class="font-14">Forgot Password?</a>
                                              </div>
                                            </div>
                                        </div>                          
                                      <button type="submit" class="btn btn-success btn-lg btn-block font-18">Log in</button>
                                    </form>
                                    <div class="login-or">
                                        <h6 class="text-muted">OR</h6>
                                    </div>
                                    <!-- <div class="social-login text-center">
                                        <button type="submit" class="btn btn-primary-rgba font-18"><i class="mdi mdi-facebook mr-2"></i>Facebook</button>
                                        <button type="submit" class="btn btn-danger-rgba font-18"><i class="mdi mdi-google mr-2"></i>Google</button>
                                    </div> -->
                                    <!-- <p class="mb-0 mt-3">Don't have a account? <a href="{{url('/user-register')}}">Sign up</a></p> -->
                                </div>

middleware authenticate

class Authenticate extends Middleware
{
    /**
     * Get the path the user should be redirected to when they are not authenticated.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return string
     */
    protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return route('login');
        }
    }
}

redirectifauthenticate

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return view('index');
        }

        return $next($request);
    }
}

при перенаправлении аутентификации я решил сделать мою главную страницу, если логин это подтвердить

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

oke 2-я регистрация аутентификации

, поэтому, как я объяснил, общий поток был в основном таким же, как laravel auth, который laravel уже предоставил.

вот мой регистрационный пользовательский контроллер

    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);
    }

    protected function create(Request $request)
    {

        $data = [ 'name'=>$request['user'], 'email'=>$request['email'], 'password'=>$request['password']];

        validator($data);

        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }

если вы, ребята, заметили, что структура немного отличалась при стандартной аутентификации от laravel, это потому, что после тестирования и попытки я обнаружил, что не могу пройти массив $ data в параметре функции create, потому что он не существует.

, поэтому я импровизировал и создавал переменную и указывал или заполнял данные, как и предполагалось, я пытался вызвать функцию валидатора перед выполнением create, но это не работает и просто проходит напрямую, чтобы создать каким-то образом проверку не работает.

спасибо, что заглянули. Надеюсь, вы, ребята, можете помочь, и, пожалуйста, дайте мне обратную связь и комментарии, спасибо:)

1 Ответ

0 голосов
/ 22 апреля 2020

Вы создаете экземпляр валидатора, но не проверяете, прошел ли он наши ошибки.

protected function create(Request $request) { 
    $data = [ 'name'=>$request['user'],
         'email'=>$request['email'],
         'password'=>$request['password']
    ]; 
    $validator = validator($data); 
    if($validator->fails()){
        return back()->withErrors($validator)->withInput();
    }
    return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...