Maison  >  Article  >  cadre php  >  Comment rédiger un formulaire d'inscription Laravel

Comment rédiger un formulaire d'inscription Laravel

王林
王林original
2023-05-26 13:57:44524parcourir

Laravel est actuellement l'un des frameworks de développement PHP les plus populaires. Ses fonctionnalités puissantes et flexibles offrent aux développeurs Web de puissants outils de développement et API. Dans Laravel, l'enregistrement par formulaire est une fonctionnalité très courante. Aujourd'hui, nous allons apprendre à utiliser Laravel pour implémenter l'enregistrement par formulaire.

Tout d'abord, nous devons créer une route dans Laravel pour gérer la soumission du formulaire et afficher la page du formulaire. Nous pouvons ajouter le code suivant dans le fichier 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

Ici, nous définissons deux routes, l'une est la route de requête GET, qui est utilisée pour afficher la page du formulaire d'inscription, et l'autre est le routage des requêtes POST, utilisé pour gérer les données de soumission de formulaire. Nous avons également nommé ces deux routes register.

Ensuite, nous devons définir un contrôleur pour traiter et restituer la page du formulaire. Nous pouvons utiliser la commande suivante pour générer un contrôleur : 🎜rrreee🎜Ensuite, nous devons écrire des méthodes pour traiter le formulaire et restituer le formulaire dans le contrôleur. , le code est le suivant : 🎜rrreee🎜Ici, nous utilisons le trait RegistersUsers intégré de Laravel pour fournir la fonction utilisateur enregistré, qui inclut certaines méthodes courantes, telles que validator() code> et la méthode <code>create(). Ces méthodes sont utilisées respectivement pour valider les données du formulaire et créer de nouveaux utilisateurs. 🎜🎜Dans la méthode showRegistrationForm(), nous renvoyons une vue modèle qui contient le contenu de notre formulaire. Dans la méthode register(), nous utilisons d'abord la méthode validator() pour vérifier les données du formulaire. Si la vérification réussit, nous utilisons create()code> pour créer un nouvel utilisateur et utilisez la méthode <code>guard() pour connecter l'utilisateur. 🎜🎜Enfin, nous devons créer une vue formulaire pour présenter le formulaire d'inscription de l'utilisateur. Nous pouvons ajouter le contenu suivant dans le fichier resources/views/auth/register.blade.php : 🎜rrreee🎜Ici, nous utilisons le framework Bootstrap pour embellir le style du formulaire. Parmi eux, nous utilisons la directive @csrf pour générer un champ de saisie de jeton CSRF caché, et le spécifions également dans l'attribut action du form balise Itinéraire enregistré. 🎜🎜À ce stade, l'inscription au formulaire Laravel est terminée. Nous pouvons utiliser la commande php artisan serve pour démarrer le serveur de développement local et visiter http://localhost:8000/register pour afficher la page du formulaire d'inscription. Lorsque nous remplissons les données correctes du formulaire et soumettons le formulaire, le système enregistre le nouvel utilisateur et le connecte automatiquement. 🎜🎜En bref, c'est si simple de mettre en œuvre l'inscription par formulaire avec Laravel. Laravel fournit de nombreuses fonctions et outils intégrés pour nous aider à mettre en œuvre une variété d'applications Web courantes et complexes. Si vous maîtrisez bien ces fonctions et outils, vous pouvez rapidement créer des applications Web efficaces, stables et faciles à entretenir. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:cache de requêtes LaravelArticle suivant:cache de requêtes Laravel