> PHP 프레임워크 > Laravel > Laravel 양식 등록 작성 방법

Laravel 양식 등록 작성 방법

王林
풀어 주다: 2023-05-26 13:57:44
원래의
542명이 탐색했습니다.

Laravel은 현재 가장 인기 있는 PHP 개발 프레임워크 중 하나이며 강력하고 유연한 기능을 통해 웹 개발자에게 강력한 개발 도구와 API를 제공합니다. Laravel에서 양식 등록은 매우 일반적인 기능입니다. 오늘은 Laravel을 사용하여 양식 등록을 구현하는 방법을 알아 보겠습니다.

먼저, 양식 제출을 처리하고 양식 페이지를 표시하기 위해 Laravel에서 경로를 만들어야 합니다. routes/web.php 파일에 다음 코드를 추가할 수 있습니다. routes/web.php 文件中添加以下代码:

Route::get('/register', 'AuthRegisterController@showRegistrationForm')->name('register');
Route::post('/register', 'AuthRegisterController@register')->name('register');
로그인 후 복사

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

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

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/registerrrreee

여기서 두 개의 경로를 정의합니다. 하나는 등록 양식 페이지를 표시하는 데 사용되는 GET 요청 경로이고, 다른 하나는 양식 제출 데이터를 처리하는 데 사용되는 POST 요청 라우팅입니다. 또한 이 두 경로의 이름을 register로 지정했습니다.

다음으로 양식 페이지를 처리하고 렌더링하기 위한 컨트롤러를 정의해야 합니다. 다음 명령을 사용하여 컨트롤러를 생성할 수 있습니다. 🎜rrreee🎜그런 다음 컨트롤러에서 양식을 처리하고 렌더링하는 메서드를 작성해야 합니다. 🎜rrreee🎜여기서 우리는 Laravel의 내장 RegistersUsers 특성을 사용하여 validator()와 같은 몇 가지 일반적인 메서드를 포함하는 등록된 사용자 함수를 제공합니다. code> 메소드와 <code>create() 메소드. 이러한 메서드는 각각 양식 데이터의 유효성을 검사하고 새 사용자를 만드는 데 사용됩니다. 🎜🎜 showRegistrationForm() 메서드에서는 양식 콘텐츠가 포함된 템플릿 보기를 반환합니다. register() 메서드에서는 먼저 validator() 메서드를 사용하여 양식 데이터를 확인합니다. 확인에 성공하면 create()를 사용합니다. code> 메소드를 사용하여 새로운 사용자를 생성하고 <code>guard() 메소드를 사용하여 사용자를 로그인합니다. 🎜🎜마지막으로 사용자 등록 양식을 표시하기 위한 양식 보기를 만들어야 합니다. resources/views/auth/register.blade.php 파일에 다음 콘텐츠를 추가할 수 있습니다. 🎜rrreee🎜여기에서는 Bootstrap 프레임워크를 사용하여 양식 스타일을 아름답게 만듭니다. 그중 @csrf 지시문을 사용하여 숨겨진 CSRF 토큰 입력 필드를 생성하고 formaction 속성에도 지정합니다. 태그 등록된 경로입니다. 🎜🎜이제 Laravel 폼 등록이 완료되었습니다. php artisan Serve 명령을 사용하여 로컬 개발 서버를 시작하고 http://localhost:8000/register를 방문하여 등록 양식 페이지를 볼 수 있습니다. 올바른 양식 데이터를 입력하고 양식을 제출하면 시스템이 새 사용자를 등록하고 자동으로 로그인합니다. 🎜🎜간단히 말하면 Laravel을 사용하여 양식 등록을 구현하는 것은 매우 간단합니다. Laravel은 다양하고 일반적이고 복잡한 웹 애플리케이션을 구현하는 데 도움이 되는 많은 내장 기능과 도구를 제공합니다. 이러한 기능과 도구를 능숙하게 사용하면 효율적이고 안정적이며 유지 관리가 쉬운 웹 애플리케이션을 빠르게 구축할 수 있습니다. 🎜

위 내용은 Laravel 양식 등록 작성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿