laravel是一种基于php语言的开源web框架,被越来越多的开发者使用。laravel框架内置了许多有用的功能,如视图、路由、数据库操作等,同时还支持拓展。本文将介绍如何使用laravel 5来实现登陆注册功能。
安装Laravel首先需要在系统中安装Laravel。安装方法可以参考Laravel官方文档或自行搜索。
创建数据库登陆注册功能需要使用数据库来存储用户信息。在此之前需要创建一个名为“laravel_login”的数据库。可以在命令行中输入如下指令:
1
2
mysql -u username -p
CREATE DATABASE laravel_login;
其中,“username”是你的MySQL用户名。这将创建一个空的名为“laravel_login”的数据库。
创建用户表在Laravel 5中,通过迁移来创建和管理数据库表。首先需要生成一个迁移文件。命令行中输入:
1
php artisan make:migration create_users_table
编辑这个迁移文件,在“up()”方法中定义用户表的字段:
1
2
3
4
5
6
7
8
9
10
11
public function up()
{
Schema::create(users, function (Blueprint $table) {
$table->increments(id);
$table->string(name);
$table->string(email)->unique();
$table->string(password);
$table->rememberToken();
$table->timestamps();
});
}
然后输入以下命令以运行这个迁移并生成用户表:
1
php artisan migrate
接下来创建控制器和视图,用于显示注册和登陆页面,并处理用户输入的信息。在命令行中输入:
1
php artisan make:controller AuthController
这个命令将创建一个名为“AuthController”的控制器,默认会被保存在“appHttpControllers”文件夹中。
控制器代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class AuthController extends Controller
{
public function showLoginForm()
{
return view(auth.login);
}
public function login(Request $request)
{
// 登陆逻辑
}
public function showRegistrationForm()
{
return view(auth.register);
}
public function register(Request $request)
{
// 注册逻辑
}
public function logout(Request $request)
{
// 注销逻辑
}
}
然后需要创建视图模板,用于渲染表单。在“resourcesiewsuth”文件夹中创建名为“login.blade.php”和“register.blade.php”的文件,分别是登陆和注册的页面模板。
模板代码如下:
登陆模板:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
@extends(layouts.app)
@section(content)
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Login</div>
<div class="panel-body">
<form class="form-horizontal" method="POST" action="{{ route(login) }}">
{{ csrf_field() }}
<div class="form-group{{ $errors->has(email) ? has-error : }}">
<label for="email" class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control" name="email" value="{{ old(email) }}" required autofocus>
@if ($errors->has(email))
<span class="help-block">
<strong>{{ $errors->first(email) }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has(password) ? has-error : }}">
<label for="password" class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password" required>
@if ($errors->has(password))
<span class="help-block">
<strong>{{ $errors->first(password) }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<div class="checkbox">
<label>
<input type="checkbox" name="remember" {{ old(remember) ? checked : }}> Remember Me
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-8 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Login
</button>
<a class="btn btn-link" href="{{ route(password.request) }}">
Forgot Your Password?
</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
注册模板:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
@extends(layouts.app)
@section(content)
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Register</div>
<div class="panel-body">
<form class="form-horizontal" method="POST" action="{{ route(register) }}">
{{ csrf_field() }}
<div class="form-group{{ $errors->has(name) ? has-error : }}">
<label for="name" class="col-md-4 control-label">Name</label>
<div class="col-md-6">
<input id="name" type="text" class="form-control" name="name" value="{{ old(name) }}" required autofocus>
@if ($errors->has(name))
<span class="help-block">
<strong>{{ $errors->first(name) }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has(email) ? has-error : }}">
<label for="email" class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control" name="email" value="{{ old(email) }}" required>
@if ($errors->has(email))
<span class="help-block">
<strong>{{ $errors->first(email) }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has(password) ? has-error : }}">
<label for="password" class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password" required>
@if ($errors->has(password))
<span class="help-block">
<strong>{{ $errors->first(password) }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Register
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
最后一步是设置路由,以便Laravel可以正确调用控制器和视图。在“routesweb.php”文件中加入以下代码:
1
2
3
4
5
Route::get(login, AuthController@showLoginForm)->name(login);
Route::post(login, AuthController@login);
Route::get(register, AuthController@showRegistrationForm)->name(register);
Route::post(register, AuthController@register);
Route::post(logout, AuthController@logout)->name(logout);
现在你可以访问如下地址来查看注册和登陆的页面:
1
2
http://yourdomain.com/register
http://yourdomain.com/login
以及如下地址来完成登陆和注销操作:
1
2
http://yourdomain.com/login
http://yourdomain.com/logout
通过本教程,你学会了如何在Laravel 5中实现登陆注册的功能。当然,这只是最基本的实现方式。在操作、安全性方面等等,还有很多要注意的地方,需要在实际开发中不断学习和完善。
以上就是如何使用Laravel 5来实现登陆注册功能的详细内容,更多请关注php中文网其它相关文章!