XAMPP 環境配置
這次我們需要開始使用繼承開發環境了,因為我們需要使用資料庫,完成使用者的登入註冊功能。
首先要配置好XAMPP環境,我們需要新增一個vhost,指向blog5.8的public目錄。
- 配置8000埠
開啟XAMPP的配置目錄xampp/apache/conf
,編輯http.conf
檔案,搜尋Listen 80
,然後在下面再新增一個埠監聽Listen 8000
。修改後如下
Listen 80 Listen 8000
- 配置vhost
開啟XAMPP的配置目錄xampp/apache/conf/extra
編輯httpd-vhosts.conf
檔案,在檔案末尾新增以下內容,注意修改blog5.8的目錄
<VirtualHost *:8000> ServerAdmin wulei@jingcheng.cn 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就會幫我們建立好所需要的資料表。在根目錄下,執行下面的命令: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會將當前註冊使用者登入,所以我們看到的是下面的介面:
到這裡,僅僅幾個命令就實現了簡單的使用者註冊登入功能。其實上面的操作還實現了郵箱找會密碼的功能,等後續我們實現使用者註冊新增郵件驗證的時候一起詳細講解。