laravel是一款極受歡迎的php web應用程序框架,它提供了豐富的工具和功能,使開發(fā)人員能夠輕松構(gòu)建出高效、易于維護的web應用程序。而其中一個關(guān)鍵的功能就是與數(shù)據(jù)庫的交互操作。在使用laravel進行開發(fā)時,我們經(jīng)常需要對數(shù)據(jù)庫進行修改或者更新,本篇文章就將帶大家詳細了解laravel修改數(shù)據(jù)庫的相關(guān)操作。
一、Laravel數(shù)據(jù)庫遷移
Laravel提供了數(shù)據(jù)庫遷移(Migration)功能,使得我們可以輕松的管理數(shù)據(jù)庫的版本控制。通過數(shù)據(jù)庫遷移,我們可以定義數(shù)據(jù)庫表結(jié)構(gòu)的變化,并通過框架提供的命令快速遷移至新版本的數(shù)據(jù)庫。具體步驟如下:
- 創(chuàng)建數(shù)據(jù)庫遷移文件
Laravel的遷移文件存儲在database/migrations目錄下,我們可以使用Artisan命令來生成遷移文件。執(zhí)行以下命令可以創(chuàng)建一個名為create_users_table的遷移文件:
php artisan make:migration create_users_table
- 編寫遷移腳本
打開剛剛生成的遷移文件(位于database/migrations目錄下),可以看到有一個up函數(shù)和一個down函數(shù)。up函數(shù)用于執(zhí)行遷移操作,而down函數(shù)用于撤銷遷移操作。
我們可以在up函數(shù)中編寫創(chuàng)建數(shù)據(jù)庫表的腳本,例如:
Schema::create(‘users’, function (Blueprint $table) {
$table->increments(‘id’);
$table->String(‘name’);
$table->string(’email’)->unique();
$table->timestamp(’email_verified_at’)->Nullable();
$table->string(‘password’);
$table->rememberToken();
$table->timestamps();
});
該腳本將創(chuàng)建一個名為users的數(shù)據(jù)表,該表包含id、name、email、email_verified_at、password、remember_token和timestamps等7個字段。
- 運行遷移腳本
編寫完遷移腳本后,我們可以通過以下命令來運行遷移腳本:
php artisan migrate
此時,Laravel框架會自動根據(jù)我們編寫的腳本來創(chuàng)建表結(jié)構(gòu),如果數(shù)據(jù)庫中已經(jīng)存在了相關(guān)表,框架會自動跳過不會執(zhí)行。
二、Laravel數(shù)據(jù)庫填充
數(shù)據(jù)庫填充是Laravel提供的另一個重要功能,可以幫助我們在開發(fā)、測試和生產(chǎn)環(huán)境中用假數(shù)據(jù)填充數(shù)據(jù)庫。例如,當我們需要測試數(shù)據(jù)的查詢性能時,可以使用填充來填充大量數(shù)據(jù)。
- 創(chuàng)建數(shù)據(jù)填充文件
我們可以使用Artisan命令來創(chuàng)建填充文件,如下:
php artisan make:seeder UsersTableSeeder
- 編寫填充腳本
將編寫的填充腳本放到database/seeds目錄下,在UsersTableSeeder中編寫如下代碼:
use IlluminateDatabaseSeeder;
use IlluminateSupportFacadesDB;
use IlluminateSupportFacadesHash;
use IlluminateSupportStr;
class UsersTableSeeder extends Seeder
{
/** * Run the database seeds. * * @return void */ public function run() { DB::table('users')->insert([ 'name' => Str::random(10), 'email' => Str::random(10).'@gmail.com', 'password' => Hash::make('password'), ]); }
}
該腳本會向users表中插入一條記錄,包含name、email、password三個字段,其中name和email字段的值是隨機生成的。
- 運行填充腳本
我們可以通過以下命令來運行填充腳本:
php artisan db:seed
此時,Laravel框架會自動調(diào)用我們編寫的填充腳本,然后將數(shù)據(jù)插入到users表中。
三、Laravel數(shù)據(jù)庫操作
除了使用數(shù)據(jù)庫遷移和數(shù)據(jù)填充來修改數(shù)據(jù)庫外,我們還可以使用Laravel提供的DB類來進行數(shù)據(jù)操作。
- 插入數(shù)據(jù)
DB::table(‘users’)->insert([
'name' => 'John Doe', 'email' => 'johndoe@example.com', 'password' => Hash::make('password'),
]);
該腳本會向users表中插入一條記錄,包含name、email、password三個字段,其中name和email字段的值都是指定的。
- 更新數(shù)據(jù)
DB::table(‘users’)
->where('id', 1) ->update(['votes' => 1]);
該語句將會將id為1的記錄中的votes字段值設為1。
- 刪除數(shù)據(jù)
DB::table(‘users’)->where(‘votes’, ‘delete();
該語句將會刪除votes字段值小于100的所有記錄。
四、結(jié)語
本文介紹了Laravel如何修改數(shù)據(jù)庫,分別介紹了數(shù)據(jù)庫遷移、數(shù)據(jù)庫填充和數(shù)據(jù)庫操作等三種方式。Laravel中處理數(shù)據(jù)庫的簡單和高效性使其成為了流行的Web框架之一,對于開發(fā)人員來說,學習這些相關(guān)功能也是非常必要的。