我有注册和授权表。他们工作,除了错误输出。例如,如果授权不成功,它应该在“数字”字段上显示错误“授权失败”。或者,在注册过程中,它应该显示在数字字段中“此用户已注册”。在这种情况下,重定向有效,但不会显示错误本身。也就是说,页面只是在更新。可能是什么错误?我是 php laravel 的新手,不知道为什么会这样 注册.blade.php:
@extends('layouts.app')
@section('title-block')
Регистрация
@endsection
@section('content')
<div class="container">
<h1 align="center">
<a href="/"><img src="{{asset('images/logo.jpg')}}" alt="logo" class="home"></a>
Register
</h1>
</div>
<hr>
<div class="container" align="center">
<form name="register" method="POST" action="{{route('user.registration')}}">
@csrf
<input class="text-input" type="text" placeholder="Enter your surname" name="surname" required>
<input class="text-input" type="text" placeholder="Enter your name" name="name" required><br>
<input class="text-input-full-width" type="text" placeholder="Enter your number" name="number" required><br>
<input class="text-input" type="text" placeholder="Enter your father`s name" name="fathers_name" required>
<input class="text-input" type="text" placeholder="Enter parent number" name="parents_number" required><br>
<input class="text-input-full-width" id="password" name="password" type="password" required placeholder="Enter password"><br>
<label for="studies"id="RegistrationForm"><b>Choose your studies</b></label><br>
<div class="btn-group" role="group" aria-label="Basic checkbox toggle button group">
<input type="checkbox" class="btn-check" id="btncheck1" autocomplete="off" name="btnstudies[]" value="Math">
<label class="btn btn-outline-primary" for="btncheck1">Math</label>
<input type="checkbox" class="btn-check" id="btncheck2" autocomplete="off" name="btnstudies[]" value="Language">
<label class="btn btn-outline-primary" for="btncheck2">Language</label>
<input type="checkbox" class="btn-check" id="btncheck3" autocomplete="off" name="btnstudies[]" value="Physics">
<label class="btn btn-outline-primary" for="btncheck3">Physics</label>
</div>
<br>
<label for="classes"id="RegistrationForm"><b>Classes</b></label><br>
<div class="btn-group-vertical" role="group">
<input type="radio" class="btn-check" name="btnradio" id="btnradio1" autocomplete="off" checked value="2">
<label class="btn btn-outline-primary" for="btnradio1">2nd class</label>
<input type="radio" class="btn-check" name="btnradio" id="btnradio2" autocomplete="off" value="3">
<label class="btn btn-outline-primary" for="btnradio2" >3rd class</label>
<input type="radio" class="btn-check" name="btnradio" id="btnradio3" autocomplete="off" value="4">
<label class="btn btn-outline-primary" for="btnradio3">4th class</label>
<input type="radio" class="btn-check" name="btnradio" id="btnradio4" autocomplete="off" value="5">
<label class="btn btn-outline-primary" for="btnradio4">5th class</label>
<input type="radio" class="btn-check" name="btnradio" id="btnradio5" autocomplete="off" value="6">
<label class="btn btn-outline-primary" for="btnradio5">6th class</label>
<input type="radio" class="btn-check" name="btnradio" id="btnradio6" autocomplete="off" value="7">
<label class="btn btn-outline-primary" for="btnradio6">7th class</label>
</div>
<br>
<div class="final">
<input type="checkbox" class="check-term" id="btncheck4" autocomplete="off" required>
<label class="check-agree" for="btncheck4">I agree with a <a href="documents/term.txt">Terms</a></label><br>
<button class="main-button" type="submit" name="sendMe" value="1" required>Register</button><br>
<br><label class="check-agree" for="btncheck5">If you have already registrated,<a href="/login"> log in</a></label>
</div>
<hr>
</form>
@endsection
注册控制器.php:
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class RegisterController extends Controller
{
// public function studies(Request $request){
// dd($request->get('btnstudies'));
// //you an store it in database now
// }
public function save(Request $request){
if(Auth::check()){
return redirect(route('user.private'));
}
$validateFields = $request->validate([
'number' =>'required','password' => 'required',]);
if(User::where('number',$request['number'])->exists()){
return redirect(route('user.registration'))->withErrors([
'number' => 'Такой пользователь уже зарегистрирован',]);
}
$studies = implode(",",$request['btnstudies'] );
$user = User::create([
'password' => $request['password'],'name' => $request['name'],'surname'=>$request['surname'],'number'=>$request['number'],'fathers_name'=>$request['fathers_name'],'parents_number'=>$request['parents_number'],'class' => $request['btnradio'],'studies' =>$studies
]);
if($user){
Auth::login($user);
return redirect(route('user.private'));
}
return redirect(route('user.login'))->withErrors([
'formError' => 'Произошла ошибка при сохранении пользователя'
]);
}
}
login.blade.php:
@extends('layouts.app')
@section('title-block')
Log in
@endsection
@section('content')
<div class="container">
<h1 align="center">
<a href="/"><img src="{{asset('images/logo.jpg')}}" alt="logo" class="home"></a>
Log in
</h1>
</div>
<hr>
<div class="container" align="center">
<form name="sign" method="POST" action="{{route('user.login')}}">
@csrf
<input class="text-input" type="text" placeholder="Enter your number" name="number">
<input class="text-input" type="text" placeholder="Enter your password" name="password">
<button class="main-button" type="submit" name="sendMe" value="1" required>Log in</button><br>
<br><label class="check-agree" for="btncheck5">Don't have an account? You can <a href="/registration"> register it right now</a></label>
</form>
</div>
<hr>
@endsection
登录控制器.php:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
public function login(Request $request){
$formFields = $request->only('number','password');
if(Auth::attempt($formFields)){
return redirect()->intended('/private');
}
return redirect(route('user.login'))->withErrors([
'number' => 'Авторизоваться не удалось'
]);
}
}