天天看点

Laravel5.8入门系列二,快速实现用户注册登录功能

一 XAMPP 环境配置

这次我们需要开始使用继承开发环境了,因为我们需要使用数据库,完成用户的登录注册功能。

首先要配置好XAMPP环境,我们需要添加一个vhost,指向blog5.8的public目录。

  1. 配置8000端口

打开XAMPP的配置目录

xampp/apache/conf

,编辑

http.conf

文件,搜索

Listen 80

,然后在下面再添加一个端口监听

Listen 8000

。修改后如下

Listen 80 Listen 8000

  1. 配置vhost

    打开XAMPP的配置目录

    xampp/apache/conf/extra

    编辑

    httpd-vhosts.conf

    文件,在文件末尾添加以下内容,注意修改blog5.8的目录

<VirtualHost *:8000> ServerAdmin [email protected] DocumentRoot "D:/code/blog5.8/public" ServerName localhost </VirtualHost> <Directory "D:/code/blog5.8/public"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory>

到这里,我们已经配置好了xampp,其他的我们使用默认配置。现在访问http://localhost:8000 可以看到之前使用laravel内置服务器访问过的首页。

数据库使用默认的

http://localhost/phpmyadmin

管理。访问

http://localhost/phpmyadmin

创建一个名为

laravel58

的数据库,字符集设置为

utf8mb4_general_ci

配置数据库信息

Laravel 本身已经生成好了配置文件。数据库的配置文件在

blog5.8/conf/database.php

中。Laravel5.8的数据库配置文件中包含了各种数据库配置的例子,这里我们使用的是mysql数据库,所以我们需要修改

database.php

中的mysql配置

'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => array_filter([
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]),
],
           

我们需要修改的内容有数据库连接地址,数据库名称,数据库用户名,数据库密码,其他的参数,视自己本地数据库配置修改。这里要注意,一般在开发中,对数据库配置而已是比较敏感的内容。因此一般使用本地环境变量配置实际的数据库信息。Laravel 的所有本地环境变量都配置在根目录下的

.env

文件中。这个文件在默认

windowns

文件浏览器下是隐藏的。

这里我们也使用本地环境便利配置好我们的本地书库

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=larave58 #//注释,数据库名称 DB_USERNAME=root #//注释,数据库用户名 DB_PASSWORD= #注释,数据库密码,xampp默认为空

一键生成注册登录页面

Laravel本身提供快捷构建用户登录的命令。在根目录下,执行以下命令:

sh php artisan make:auth

这样,laravel就为我们构建好了,用户登录注册的界面了。界面的试图文件在

resources\views\auth

目录下。注册登录相关的控制器在

app\Http\Controllers\Auth

目录下

访问http://localhost:8000 可以发现顶部栏已经出现了登录注册的入口。

登录界面

Laravel5.8入门系列二,快速实现用户注册登录功能

注册界面

Laravel5.8入门系列二,快速实现用户注册登录功能

除了生成界面之外,这个命令还在路由文件中

route/web.php

添加了用户登录注册需要的路由。

生成用户表与用户模型

上面的操作只是生成了用户注册登录的界面,并没有创建用户表。加入你尝试去注册用户,你就会看到类似下面的错误提示:

Laravel5.8入门系列二,快速实现用户注册登录功能

请不要害怕,这只是laravel在告诉你,你在注册用户之前,系统没有准备好数据表。

Laravel已经准备好了数据迁移文件,我们只要在命令行中执行数据迁移命令,laravel就会帮我们创建好所需要的数据表。在根目录下,执行下面的命令:

sh php artisan migrate

这一步,如果你的命令提升错误,错误信息类似于下面

PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Sp ecified key was too long; max key length is 767 bytes")

这是由于mysql版本照成的。如果出现这个错误提升,那么,请编辑

app\Provides\AppServiceProvider.php

,修改register方法如下:

php public function register() { \Schema::defaultStringLength(191); }

然后删除掉数据库中的所有的表,重新执行一遍数据迁移命令就可以了。

以上操作成功之后,我们就可以注册用户了,这里我们注册一个admin的用户。注册成功之后,Laravel会将当前注册用户登录,所以我们看到的是下面的界面:

Laravel5.8入门系列二,快速实现用户注册登录功能

到这里,仅仅几个命令就实现了简单的用户注册登录功能。其实上面的操作还实现了邮箱找会密码的功能,等后续我们实现用户注册添加邮件验证的时候一起详细讲解。