laravel表单注册怎么写

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

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

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

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

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

Laravel表单注册的完美实现方法!

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

php artisan make:controller AuthRegisterController

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

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']),
]);

}
}

在这里,我们使用了 Laravel 内置的 RegistersUsers trait,来提供注册用户功能,它包含了一些常用方法,如 validator() 方法和 create() 方法。这些方法分别用于验证表单数据和创建新用户。

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

最后,我们需要创建一个表单视图,来呈现给用户注册表单。我们可以在 resources/views/auth/register.blade.php 文件中添加以下内容:

<
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="
{{ route('register') }}"
>

@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框架之一,提供了方便易用的功能和工具。其中表单注册是一项非常基础、重要的功能,在Laravel中也得到了很好的支持。下面将为大家详细介绍如何使用Laravel表单注册。
一、Laravel的表单注册设计
Laravel提供了Authentication 和 Authorization(认证和授权)功能,通过访问原生的 Auth 控制器或更方便的对 Auth 进行路由控制,以实现表单注册功能。具体实现的方法如下:在 routes/web.php 文件中增加下面路由:
- Route::get('register', 'Auth\\RegisterController@showRegistrationForm');
- Route::post('register', 'Auth\\RegisterController@register');
二、Laravel表单注册核心代码
Laravel 5.5版本在旧版本的基础上做了一些升级,所以它的注册代码风格也略有不同。通过下面的视图文件,可以实现页面展示和数据提交的交互。
@endsection
@section('content')



Register



{{ csrf_field() }}
has('name') ? ' has-error' : '' }}\">



@if ($errors->has('name'))

{{ $errors->first('name') }}

@endif


has('email') ? ' has-error' : '' }}\">



@if ($errors->has('email'))

{{ $errors->first('email') }}

@endif


has('password') ? ' has-error' : '' }}\">



@if ($errors->has('password'))

{{ $errors->first('password') }}

@endif


















@stop
三、Laravel表单注册的进一步实现
实现表单之后,可以通过 Laravel 的验证机制对提交的数据进行验证。详细实现的方法如下:在 Laravel 的 App\\Http\\Controllers\\Auth\\RegisterController 控制器文件中,找到下面函数:
public 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:6|confirmed',
]);
}
通过编辑 validator 函数,可以实现新的验证规则。这里可以设置表单数据各项的验证限制,包括最大长度、唯一性等。

Laravel表单注册的成果展示
通过以上步骤的设计和实现,可以轻松实现 Laravel 表单注册的功能。如下图所示,已经成功注册新的账户,可以通过 Laravel 内置的身份验证系统直接登录系统,享受更多功能操作。

总结
本文详细为大家介绍了如何使用Laravel实现表单注册功能,包括路由和核心代码的设计,进一步实现表单数据验证和结果展示的方法。其中,代码实现的细节和设计理念可以帮助开发者快速掌握 Laravel 中的表单提交和验证功能,从而更好地实现网站和系统的相关操作。无论是新手或是专家,都可以从本文中获得实用的使用技巧和经验,提高自己的编程水平和开发效率。