Laravel is a very popular PHP framework. It has the advantages of simplicity, ease of use, efficiency, stability, safety and reliability, and is widely used in the development of web applications. In web application development, login and registration functions are essential, so how to use Laravel to implement login and registration functions? This article will introduce it to you in detail.
1. Install Laravel
Before using Laravel to develop, you need to install Laravel first. You can install it through composer and use the following command:
composer create-project --prefer-dist laravel/laravel project_name
After the installation is completed, enter the directory where the project is located. Execute the following command to start the Laravel service:
php artisan serve
2. Create user model and data table
In Laravel, you can easily use Eloquent ORM to handle database operations. We need to create user model and data table.
It is very convenient to create a model in Laravel. You only need to use the following command in the command line:
php artisan make:model User
In app A User.php file will be generated in the directory, which is the user model. Laravel will set the table name to the plural of the model by default, so we need to set the table name in the User model, as follows:
class User extends Model { protected $table = 'users'; }
2. Create users data table
Create in the database users table, run the following command to create a migration:
php artisan make:migration create_users_table --create=users
A migration file will be generated in the database/migrations directory, as shown below:
class CreateUsersTable extends Migration { public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); } }
Execute the following command to generate a data table:
php artisan migrate
3. Use the laravel/ui package to create user authentication
Laravel provides a laravel/ui package that can be used to create a user authentication system. First use the following command to install the laravel/ui package:
composer require laravel/ui
After the installation is completed, execute the following command to create the user authentication system:
php artisan ui vue --auth
The function of this command is to create the Vue.js front-end framework Default login and registration views. After the execution is completed, you will find that there is an auth folder in the resources/views directory, including two view files auth/login.blade.php and auth/register.blade.php.
4. Set routing
In Laravel, routing is a mechanism that binds URLs to controller methods. We need to set up routing so that we can access the login and registration pages.
In the routes/web.php file, add the following route definition:
Route::get('/login', 'Auth\LoginController@showLoginForm')->name('login'); Route::post('/login', 'Auth\LoginController@login'); Route::get('/register', 'Auth\RegisterController@showRegistrationForm')->name('register'); Route::post('/register', 'Auth\RegisterController@register');
These routes will call the methods in Laravel's default Auth\LoginController and Auth\RegisterController respectively.
5. Customized user authentication
In practical applications, we often need to customize user authentication to meet business needs. The following are the steps to customize user authentication:
We need to create LoginController and RegisterController controls in the app/Http/Controllers/Auth directory controller, the code is as follows:
class LoginController extends Controller { protected function validator(array $data) { return Validator::make($data, [ 'email' => 'required|email', 'password' => 'required|min:6' ]); } public function showLoginForm() { return view('auth.login'); } public function login(Request $request) { $validator = $this->validator($request->all()); if ($validator->fails()) { return redirect('/login') ->withErrors($validator) ->withInput(); } if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) { return redirect('/'); } else { return redirect('/login') ->withErrors(['email' => '邮箱或密码错误']) ->withInput(); } } }
class RegisterController extends Controller { protected function validator(array $data) { return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:6|confirmed', ]); } public function showRegistrationForm() { return view('auth.register'); } public function register(Request $request) { $validator = $this->validator($request->all()); if ($validator->fails()) { return redirect('/register') ->withErrors($validator) ->withInput(); } $user = User::create([ 'name' => $request['name'], 'email' => $request['email'], 'password' => bcrypt($request['password']), ]); Auth::login($user); return redirect('/'); } }
In the custom controller, the validator method is used to verify the legitimacy of the user input data and handle errors during the login or registration process.
Modify the original routing to the following code:
Route::get('/login', 'LoginController@showLoginForm')->name('login'); Route::post('/login', 'LoginController@login'); Route::get('/register', 'RegisterController@showRegistrationForm')->name('register'); Route::post('/register', 'RegisterController@register');
In this way, the code is modified and written according to our own needs , just log in and register.
6. Summary
This article introduces in detail the steps to use Laravel to implement user login and registration, including creating user models and data tables, using the laravel/ui package to create a default user authentication system, and setting routing and custom user authentication. Whether it is the basic version or the customized version, using Laravel is very convenient, and development efficiency has also been greatly improved. If you are a PHP developer, you might as well try Laravel.
The above is the detailed content of Examples to explain how Laravel implements login and registration functions. For more information, please follow other related articles on the PHP Chinese website!