如何使用Laravel 5来实现登陆注册功能

来源:undefined 2025-01-04 03:10:34 1057

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)

{

// 注销逻辑

}

}

登录后复制

然后需要创建视图模板,用于渲染表单。在“resources iewsuth”文件夹中创建名为“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中文网其它相关文章!

最新文章