天天看點

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入門系列二,快速實作使用者注冊登入功能

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