laravel表单注册怎么写

来源:undefined 2025-01-01 04:19:20 1051

laravel 是目前最流行的 php 开发框架之一,其强大而灵活的特性为 web 开发者提供了强大的开发工具和 api。在 laravel 中,表单注册是一个很常见的功能,今天我们就来学习如何用 laravel 实现表单注册。

首先,我们需要在 Laravel 中创建一个路由,用于处理表单提交和显示表单页面。我们可以在 routes/web.php 文件中添加以下代码:

1

2

Route::get(/register, AuthRegisterController@showRegistrationForm)->name(register);

Route::post(/register, AuthRegisterController@register)->name(register);

登录后复制

在这里,我们定义了两个路由,一个是 GET 请求路由,用于显示注册表单页面,另一个是 POST 请求路由,用于处理表单提交数据。我们还给这两个路由分别起了名字为 register。

接下来,我们需要定义一个控制器,来处理和渲染表单页面,我们可以使用以下命令来生成一个控制器:

1

php artisan make:controller AuthRegisterController

登录后复制

然后,我们需要在该控制器中编写处理表单和渲染表单的方法,代码如下:

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

namespace AppHttpControllersAuth;

use AppHttpControllersController;

use IlluminateFoundationAuthRegistersUsers;

use IlluminateSupportFacadesValidator;

use IlluminateHttpRequest;

class RegisterController extends Controller

{

use RegistersUsers;

protected $redirectTo = /home;

public function __construct()

{

$this->middleware(guest);

}

public function showRegistrationForm()

{

return view(auth.register);

}

public function register(Request $request)

{

$this->validator($request->all())->validate();

$user = $this->create($request->all());

$this->guard()->login($user);

return redirect($this->redirectTo);

}

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(array $data)

{

return User::create([

name => $data[name],

email => $data[email],

password => Hash::make($data[password]),

]);

}

}

登录后复制

在 showRegistrationForm() 方法中,我们返回了一个模板视图,该视图包含了我们的表单内容。在 register() 方法中,我们首先使用 validator() 方法来验证表单数据,如果验证通过,我们就使用 create() 方法来创建新用户,并使用 guard() 方法来登录该用户。

最后,我们需要创建一个表单视图,来呈现给用户注册表单。我们可以在 resources/views/auth/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

69

70

71

72

73

<div class="container">

<div class="row justify-content-center">

<div class="col-md-8">

<div class="card">

<div class="card-header">Register</div>

<div class="card-body">

<form method="POST" action="%7B%7B%20route(register)%20%7D%7D">

@csrf

<div class="form-group row">

<label for="name" class="col-md-4 col-form-label text-md-right">{{ __(Name) }}</label>

<div class="col-md-6">

<input id="name" type="text" class="form-control @error(name) is-invalid @enderror" name="name" value="{{ old(name) }}" required autocomplete="name" autofocus>

@error(name)

<span class="invalid-feedback" role="alert">

<strong>{{ $message }}</strong>

</span>

@enderror

</div>

</div>

<div class="form-group row">

<label for="email" class="col-md-4 col-form-label text-md-right">{{ __(E-Mail Address) }}</label>

<div class="col-md-6">

<input id="email" type="email" class="form-control @error(email) is-invalid @enderror" name="email" value="{{ old(email) }}" required autocomplete="email">

@error(email)

<span class="invalid-feedback" role="alert">

<strong>{{ $message }}</strong>

</span>

@enderror

</div>

</div>

<div class="form-group row">

<label for="password" class="col-md-4 col-form-label text-md-right">{{ __(Password) }}</label>

<div class="col-md-6">

<input id="password" type="password" class="form-control @error(password) is-invalid @enderror" name="password" required autocomplete="new-password">

@error(password)

<span class="invalid-feedback" role="alert">

<strong>{{ $message }}</strong>

</span>

@enderror

</div>

</div>

<div class="form-group row">

<label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __(Confirm Password) }}</label>

<div class="col-md-6">

<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">

</div>

</div>

<div class="form-group row mb-0">

<div class="col-md-6 offset-md-4">

<button type="submit" class="btn btn-primary">

{{ __(Register) }}

</button>

</div>

</div>

</form>

</div>

</div>

</div>

</div>

</div>

登录后复制

在这里,我们使用了 Bootstrap 框架来美化表单样式。其中,我们使用了 @csrf 指令,来生成一个隐藏的 CSRF token 输入域,同时也在 form 标签的 action 属性中指定了注册路由。

到此为止,Laravel 表单注册就完成了。我们可以使用 php artisan serve 命令来启动本地开发服务器,并访问 http://localhost:8000/register 来查看注册表单页面。当我们填写正确的表单数据并提交表单时,系统就会注册新用户并自动登录他们。

总之,用 Laravel 实现表单注册就是这么简单。Laravel 提供了很多内置的功能和工具,来帮助我们实现各种各样的普通和复杂的 Web 应用。如果你善于利用这些功能和工具,就可以快速构建出高效、稳定、易维护的 Web 应用。

以上就是laravel表单注册怎么写的详细内容,更多请关注php中文网其它相关文章!

最新文章