Rumah > rangka kerja php > Laravel > Cara menulis pendaftaran borang laravel

Cara menulis pendaftaran borang laravel

王林
Lepaskan: 2023-05-26 13:57:44
asal
541 orang telah melayarinya

Laravel pada masa ini ialah salah satu rangka kerja pembangunan PHP yang paling popular Ciri-cirinya yang berkuasa dan fleksibel memberikan pembangun web dengan alat pembangunan dan API yang berkuasa. Dalam Laravel, pendaftaran borang adalah ciri yang sangat biasa Hari ini kita akan belajar cara menggunakan Laravel untuk melaksanakan pendaftaran borang.

Pertama, kita perlu mencipta laluan dalam Laravel untuk mengendalikan penyerahan borang dan memaparkan halaman borang. Kita boleh menambah kod berikut dalam fail routes/web.php:

Route::get('/register', 'AuthRegisterController@showRegistrationForm')->name('register');
Route::post('/register', 'AuthRegisterController@register')->name('register');
Salin selepas log masuk

Di sini, kami mentakrifkan dua laluan, satu ialah laluan permintaan GET, yang digunakan untuk memaparkan halaman borang pendaftaran, dan satu lagi POST laluan permintaan, yang digunakan Untuk memproses data penyerahan borang. Kami juga menamakan dua laluan ini register.

Seterusnya, kita perlu menentukan pengawal untuk memproses dan membuat halaman borang Kita boleh menggunakan arahan berikut untuk menjana pengawal:

php artisan make:controller AuthRegisterController
Salin selepas log masuk

Kemudian, kita perlu Menulis kaedah untuk memproses. borang dan render borang. Kodnya adalah seperti berikut:

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']),
        ]);
    }
}
Salin selepas log masuk

Di sini, kami menggunakan ciri RegistersUsers terbina dalam Laravel untuk menyediakan fungsi pengguna berdaftar, yang merangkumi beberapa kaedah biasa, seperti validator() kaedah dan create() kaedah. Kaedah ini digunakan untuk mengesahkan data borang dan mencipta pengguna baharu masing-masing.

Dalam kaedah showRegistrationForm(), kami mengembalikan paparan templat yang mengandungi kandungan borang kami. Dalam kaedah register(), kami mula-mula menggunakan kaedah validator() untuk mengesahkan data borang Jika pengesahan lulus, kami menggunakan kaedah create() untuk mencipta pengguna baharu dan menggunakan kaedah guard() untuk log masuk pengguna. .

Akhir sekali, kita perlu membuat paparan borang untuk membentangkan borang pendaftaran pengguna. Kami boleh menambah kandungan berikut dalam fail 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>
Salin selepas log masuk

Di sini, kami telah menggunakan rangka kerja Bootstrap untuk mencantikkan gaya borang. Antaranya, kami menggunakan arahan @csrf untuk menjana medan input token CSRF tersembunyi, dan juga menentukan laluan pendaftaran dalam atribut form bagi teg action.

Pada ketika ini, pendaftaran borang Laravel telah selesai. Kita boleh menggunakan perintah php artisan serve untuk memulakan pelayan pembangunan setempat dan melawati http://localhost:8000/register untuk melihat halaman borang pendaftaran. Apabila kami mengisi data borang yang betul dan menyerahkan borang, sistem mendaftarkan pengguna baharu dan log masuk secara automatik.

Ringkasnya, sangat mudah untuk melaksanakan pendaftaran borang dengan Laravel. Laravel menyediakan banyak fungsi dan alatan terbina dalam untuk membantu kami melaksanakan pelbagai aplikasi web biasa dan kompleks. Jika anda mahir menggunakan fungsi dan alatan ini, anda boleh membina aplikasi web yang cekap, stabil dan mudah diselenggara dengan cepat.

Atas ialah kandungan terperinci Cara menulis pendaftaran borang laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan