一、.env文件
.env 文件是應用的環境配置文件,在配置應用參數、數據庫連接、緩存處理時都會使用這個文件。
// 應用相關參數 APP_ENV=local APP_DEBUG=true //應用調試模式 APP_KEY=base64:hMYz0BMJDJARKgrmaV93YQY/p9SatnV8m0kT4LVJR5w= //應用key APP_URL=http://localhost // 數據庫連接參數 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravelblog DB_USERNAME=root DB_PASSWORD= DB_PREFIX='hd_' // 緩存相關參數 CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync // Redis 連接參數 REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 // 郵件相關參數 MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null
其中,有關這個 APP_KEY 的解釋,在 config/app.php 中有如下注釋:
/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| This key is used by the Illuminate encrypter service and should be set
| to a random, 32 character string, otherwise these encrypted strings
| will not be safe. Please do this before deploying an application!
|
*/
'key' => env('APP_KEY'),
'cipher' => 'AES-256-CBC',
key 鍵讀取 .env 文件的 APP_KEY ,一般是 32 位的隨機字符串。cipher 鍵決定 APP_KEY 的長度,一般是 AES-256-CBC (默認)表示 key 長 32 位字符,或者 AES-128-CBC 表示 16 位。
所以,為了保證會話和加密服務的安全, APP_KEY 必須設置,使用 Artisan 命令生成:
php artisan key:generate
這樣,.env 文件中就會寫入一個新的 APP_KEY 。
二、模型操作
Laravel 提供了 DB 類、查詢構建器和 Elequent 模型這三個工具來實現數據庫操作。
1. DB類
// 插入
DB::insert('insert into hd_user(username, password) values(?, ?)', ['admin', 123456]);
// 查詢
DB::select('select * from hd_user where username = ?', ['admin']);
// 更新
DB::update('update hd_user set password= ? where username = ?', [654321, 'admin']);
// 刪除
DB::delete('delete from hd_user where username = ?', ['admin']);
注:dd() 函數用於打印變量的詳細信息,是 Laravel 的輔助函數。
2. 查詢構建器
DB 類的 table 方法為給定表返回一個查詢構建器。
// 查詢所有
DB::table('user')->get();
// 查詢多條
DB::table('user')->where('age', '>', 20)->get();
// 查詢一條
DB::table('user')->where('age', '>', 20)->first();
// 查詢特定字段
DB::table('user')->select('name', 'email as user_email')->get();
// distinct() 方法去重復
$users = DB::table('user')->distinct()->get();
3. Eloquent ORM
迷人的ORM,Laravel 的 Elequent 模型提供了簡潔的數據庫操作。比查詢構建器更對象化,封裝性更高。功能不如查詢構建器強大,但可以使用查詢構建器的方法。
1.創建模型
php artisan make:model User
2. 表名、主鍵、時間戳
表名:默認模型類名的復數作為表名,可以在模型類中定義 protected $table 屬性來覆蓋。
主鍵:默認主鍵名為"id",可以在模型類中定義 protected $primaryKey 屬性來覆蓋。
時間戳:默認會管理 created_at 和 updated_at 字段,可以在模型類中定義 public $timestamps 屬性為 false 取消。

3.數據操作
在控制器方法中:
// 插入
$user = new User;
$user->username = 'admin';
$user->save();
// 查詢
// 查詢所有
User::get();
// 查詢多條
User::where('age', '>', '20')->get();
// 查詢一條
user::find(1);
// 更新
$user = User::find(1); // 查找主鍵為1的一條記錄
$user->username = 'new name';
$user->save(); // 或者用 update() 方法
// 刪除
// 方法1.先獲取記錄再刪除
User::find(1)->delete();
// 方法2.通過主鍵直接刪除
User::destroy(1, 2);
// 方法3.通過 where 條件刪除
User::where('username', 'admin')->delete();
