Heim > PHP-Framework > Laravel > Hauptteil

So schreiben Sie die Laravel-Formularregistrierung

王林
Freigeben: 2023-05-26 13:57:44
Original
494 Leute haben es durchsucht

Laravel ist eines der beliebtesten PHP-Entwicklungsframeworks. Seine leistungsstarken und flexiblen Funktionen bieten leistungsstarke Entwicklungstools und APIs für Webentwickler. In Laravel ist die Formularregistrierung eine sehr häufige Funktion. Heute erfahren Sie, wie Sie mit Laravel die Formularregistrierung implementieren.

Zuerst müssen wir in Laravel eine Route erstellen, um die Formularübermittlung abzuwickeln und die Formularseite anzuzeigen. Wir können den folgenden Code in die Datei routes/web.php einfügen: routes/web.php 文件中添加以下代码:

Route::get('/register', 'AuthRegisterController@showRegistrationForm')->name('register');
Route::post('/register', 'AuthRegisterController@register')->name('register');
Nach dem Login kopieren

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

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

php artisan make:controller AuthRegisterController
Nach dem Login kopieren

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

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']),
        ]);
    }
}
Nach dem Login kopieren

在这里,我们使用了 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>
Nach dem Login kopieren

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

到此为止,Laravel 表单注册就完成了。我们可以使用 php artisan serve 命令来启动本地开发服务器,并访问 http://localhost:8000/registerrrreee

Hier definieren wir zwei Routen, eine ist die GET-Anfrageroute, die zum Anzeigen der Registrierung verwendet wird Die andere Seite ist die POST-Anforderungsroute und wird zum Verarbeiten von Formularübermittlungsdaten verwendet. Wir haben diese beiden Routen auch register genannt.

Als nächstes müssen wir einen Controller zum Verarbeiten und Rendern der Formularseite definieren. Wir können den folgenden Befehl verwenden, um einen Controller zu generieren: #🎜🎜#rrreee#🎜🎜#Dann müssen wir The Die Methode zum Verarbeiten des Formulars und zum Rendern des Formulars ist in diesem Controller geschrieben. Der Code lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Hier verwenden wir Laravels integriertes Merkmal RegistersUsers, um das bereitzustellen Registrierte Benutzerfunktion. Sie enthält einige häufig verwendete Methoden, wie die Methode validator() und die Methode create(). Diese Methoden werden verwendet, um Formulardaten zu validieren bzw. neue Benutzer zu erstellen. #🎜🎜##🎜🎜#In der Methode showRegistrationForm() geben wir eine Vorlagenansicht zurück, die unseren Formularinhalt enthält. In der Methode register() verwenden wir zunächst die Methode validator(), um die Formulardaten zu überprüfen. Wenn die Überprüfung erfolgreich ist, verwenden wir create()code>-Methode, um einen neuen Benutzer zu erstellen, und verwenden Sie die <code>guard()-Methode, um den Benutzer anzumelden. #🎜🎜##🎜🎜#Zuletzt müssen wir eine Formularansicht erstellen, um das Benutzerregistrierungsformular anzuzeigen. Wir können den folgenden Inhalt in die Datei resources/views/auth/register.blade.php einfügen: #🎜🎜#rrreee#🎜🎜#Hier verwenden wir das Bootstrap-Framework, um den Formularstil zu verschönern. Unter anderem verwenden wir die Direktive @csrf, um ein verstecktes CSRF-Token-Eingabefeld zu generieren, und geben es auch im Attribut action des form an tag Registrierte Route. #🎜🎜##🎜🎜#Zu diesem Zeitpunkt ist die Registrierung des Laravel-Formulars abgeschlossen. Wir können den Befehl php artisanserv verwenden, um den lokalen Entwicklungsserver zu starten und http://localhost:8000/register aufzurufen, um die Seite mit dem Registrierungsformular anzuzeigen. Wenn wir die korrekten Formulardaten ausfüllen und das Formular absenden, registriert das System den neuen Benutzer und meldet ihn automatisch an. #🎜🎜##🎜🎜#Kurz gesagt, es ist so einfach, die Formularregistrierung mit Laravel umzusetzen. Laravel bietet viele integrierte Funktionen und Tools, die uns bei der Implementierung einer Vielzahl gängiger und komplexer Webanwendungen unterstützen. Wenn Sie diese Funktionen und Tools gut nutzen, können Sie schnell effiziente, stabile und leicht zu wartende Webanwendungen erstellen. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo schreiben Sie die Laravel-Formularregistrierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!