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 可以發現頂部欄已經出現了登錄註冊的入口。

登錄界面
圖片描述

註冊界面
圖片描述

除了生成界面之外,這個命令還在路由文件中route/web.php添加了用戶登錄註冊需要的路由。

Auth::routes();

生成用戶數據表

上面的操作只是生成了用戶註冊登錄的界面,並沒有創建用戶表。加入你嘗試去註冊用戶,你就會看到類似下面的錯誤提示:
圖片描述

請不要害怕,這只是laravel在告訴你,你在註冊用戶之前,系統沒有準備好數據表。

Laravel已經準備好了數據遷移文件,我們只要在命令行中執行數據遷移命令,laravel就會幫我們創建好所需要的數據表。在根目錄下,執行下面的命令:

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方法如下:

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

然後刪除掉數據庫中的所有的表,重新執行一遍數據遷移命令就可以了。

以上操作成功之後,我們就可以註冊用戶了,這裏我們註冊一個admin的用戶。註冊成功之後,Laravel會將當前註冊用戶登錄,所以我們看到的是下面的界面:
圖片描述

到這裏,僅僅幾個命令就實現了簡單的用戶註冊登錄功能。其實上面的操作還實現了郵箱找會密碼的功能,等後續我們實現用戶註冊添加郵件驗證的時候一起詳細講解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章