я создал новый контроллер под названием AuthController: созданная мной система аутентификации не работает :(
<?php
namespace App\Http\Controllers\Site;
use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
class AuthController extends Controller
{
public function register(Request $request)
{
if ($request->isMethod('Get')) {
return view('auth.register');
}
$this->validate($request,[
'fname' => 'required|string|min:3|max:255',
'lname' => 'required|string|min:3|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|string|min:8|max:255|confirmed',
'username' => 'required|string|min:6|max:255|unique:users',
'mobile' => 'required|min:11|max:11|regex:/^09[0-3][0-9]{8}$/u|unique:users'
]);
$user = new User();
$user->fname = $request->fname;
$user->lname = $request->lname;
$user->email = $request->email;
$user->password = Hash::make($request->password);
$user->username = $request->username;
$user->mobile = $request->mobile;
}
public function login()
{
return 'login';
}
public function logout()
{
}
}
а это мой Модель:
<?php
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'fname', 'lname', 'email', 'password', 'username', 'mobile'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
это моя регистрационная форма:
@extends('_partials.master')
@section('title','Register')
@section('stylesheet')
<link rel = "stylesheet" href = "/assets/css/slick-theme.css">
<link rel = "stylesheet" href = "/assets/css/slick.css">
<link rel = "stylesheet" href = "/assets/css/style.css">
@endsection
@section('content')
<article class = "single-blog contact-us">
<div class = "post-thumb">
<img src = "assets/images/archi-feature-cat-6.jpg" alt = "">
</div>
<div class = "post-content">
<div class = "entry-header text-center text-uppercase">
<h2 class = "text-left"><a href = "{{ route('register') }}">Register</a></h2>
</div>
<div class = "entry-content">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirtempor
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
</div>
<div class = "leave-comment">
<form class = "form-horizontal contact-form" method = "post"
action = "/register">
{{ csrf_field() }}
<div class = "form-group">
<div class = "col-md-6">
<input type = "text" value = "{{ @old('fname') }}" class = "form-control" id = "fname" name = "fname"
placeholder = "First Name">
<span class = "text-danger">{{ $errors->first('fname') }}</span>
</div>
<div class = "col-md-6">
<input type = "text" value = "{{ @old('lname') }}" class = "form-control" id = "lname" name = "lname"
placeholder = "Last Name">
<span class = "text-danger">{{ $errors->first('lname') }}</span>
</div>
</div>
<div class = "form-group">
<div class = "col-md-12">
<input type = "text" value = "{{ @old('email') }}" class = "form-control" id = "email" name = "email"
placeholder = "Email">
<span class = "text-danger">{{ $errors->first('email') }}</span>
</div>
</div>
<div class = "form-group">
<div class = "col-md-12">
<input type = "text" value = "{{ @old('username') }}" class = "form-control" id = "username" name = "username"
placeholder = "Username">
<span class = "text-danger">{{ $errors->first('username') }}</span>
</div>
</div>
<div class = "form-group">
<div class = "col-md-6">
<input type = "password" value = "{{ @old('password') }}" class = "form-control" id = "password" name = "password"
placeholder = "Password">
<span class = "text-danger">{{ $errors->first('password') }}</span>
</div>
<div class = "col-md-6">
<input type = "password" value = "{{ @old('password_confirmation') }}" class = "form-control" id = "password_confirmation" name = "password_confirmation"
placeholder = "Password Again">
<span class = "text-danger">{{ $errors->first('password_confirmation') }}</span>
</div>
</div>
<div class = "form-group">
<div class = "col-md-12">
<input type = "text" value = "{{ @old('mobile') }}" class = "form-control" id = "mobile" name = "mobile"
placeholder = "Mobile">
<span class = "text-danger">{{ $errors->first('mobile') }}</span>
</div>
</div>
<button type = "submit" class = "btn send-btn">Register</button>
</form>
</div>
</div>
</article>
@endsection
@section('javascript')
<script src = "/assets/js/slick.min.js"></script>
<script src = "/assets/js/main.js"></script>
@endsection
моя система регистрации не работает, и она возвращает пустую страницу. он не возвращает никаких ошибок. Я хочу сам сделать систему аутентификации пользователей. что мне делать? пожалуйста, помогите мне tnx :)






После проверки данных используйте функцию create следующим образом:
$data = $request->all();
$user = User::create([
'fname' => $data->fname;
'lname' => $data->lname;
'email' => $data->email;
'password' => Hash::make($data->password);
'username' => $data->username;
'mobile' => $data->mobile;
]);
Auth::login($user); //this will login the user.
Весь ваш код в порядке, просто замените $this->validate($request на $this->validate($request->all(),
public function register(Request $request)
{
if ($request->isMethod('Get')) {
return view('auth.register');
}
$this->validate($request->all(),[
'fname' => 'required|string|min:3|max:255',
'lname' => 'required|string|min:3|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|string|min:8|max:255|confirmed',
'username' => 'required|string|min:6|max:255|unique:users',
'mobile' => 'required|min:11|max:11|regex:/^09[0-3][0-9]{8}$/u|unique:users'
]);
$user = new User();
$user->fname = $request->fname;
$user->lname = $request->lname;
$user->email = $request->email;
$user->password = Hash::make($request->password);
$user->username = $request->username;
$user->mobile = $request->mobile;
$user->save(); //add this line
return redirect('login');
}
Добавить строку $user->save();
вы забыли добавить
$user->save();