Laravel連接數(shù)據(jù)庫Migration和Seeder
Laravel是一款流行的PHP開發(fā)框架,它提供了許多便捷的工具來幫助開發(fā)者連接和操作數(shù)據(jù)庫。在本文中,我們將探討如何使用Laravel的Migration和Seeder功能來連接數(shù)據(jù)庫并填充數(shù)據(jù)。L
Laravel是一款流行的PHP開發(fā)框架,它提供了許多便捷的工具來幫助開發(fā)者連接和操作數(shù)據(jù)庫。在本文中,我們將探討如何使用Laravel的Migration和Seeder功能來連接數(shù)據(jù)庫并填充數(shù)據(jù)。
Laravel的Auth系統(tǒng)
在開始之前,我們首先需要設(shè)置Laravel的Auth系統(tǒng)。運(yùn)行以下命令來生成Auth系統(tǒng)的基本文件:
```
php artisan make:auth
```
這個(gè)命令會生成一些基本的認(rèn)證相關(guān)的文件和視圖。接下來,我們需要修改配置文件以連接到我們的數(shù)據(jù)庫。打開`.env`文件,將以下配置替換為你自己的數(shù)據(jù)庫配置:
```
DB_HOST127.0.0.1
DB_PORT3306
DB_DATABASElaravel
DB_USERNAMEroot
DB_PASSWORDpassword
```
保存文件后,我們就可以通過訪問`http://127.0.0.1/login`來打開登錄頁面了。
進(jìn)行數(shù)據(jù)庫遷移(Migration)
數(shù)據(jù)庫配置好之后,在登錄界面填寫任意郵箱和密碼,點(diǎn)擊"Login"按鈕,你應(yīng)該會得到一個(gè)成功登錄的提示。
現(xiàn)在,我們需要創(chuàng)建數(shù)據(jù)庫表。運(yùn)行以下命令來執(zhí)行數(shù)據(jù)庫遷移:
```
php artisan migrate
```
如果一切順利,你應(yīng)該會看到遷移成功的提示?,F(xiàn)在,你可以嘗試在`http://127.0.0.1/register`注冊一個(gè)新用戶了。
使用Migration和Seeder
接下來,我們將為一個(gè)名為"Article"的模型生成對應(yīng)的Migration和Seeder。
首先,運(yùn)行以下命令來生成Migration文件:
```
php artisan make:migration create_articles_table
```
這個(gè)命令會在`database/migrations`目錄下生成一個(gè)新的Migration文件。打開該文件,將`up`函數(shù)修改為以下代碼:
```php
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body')->nullable();
$table->integer('user_id');
$table->timestamps();
});
}
```
這幾行代碼描述了"Article"模型對應(yīng)的數(shù)據(jù)庫表的結(jié)構(gòu)。Laravel默認(rèn)情況下,模型的表名是模型類名的復(fù)數(shù)形式,所以這里對應(yīng)的表名是"articles"。
保存文件后,運(yùn)行以下命令將PHP代碼轉(zhuǎn)換為真實(shí)的MySQL數(shù)據(jù)表:
```
php artisan migrate
```
執(zhí)行成功后,你應(yīng)該能在數(shù)據(jù)庫中看到新創(chuàng)建的"articles"表。
接下來,我們需要創(chuàng)建一個(gè)Seeder來填充一些假數(shù)據(jù)。運(yùn)行以下命令創(chuàng)建一個(gè)新的Seeder文件:
```
php artisan make:seeder ArticleSeeder
```
這個(gè)命令會在`database/seeds`目錄下生成一個(gè)新的Seeder文件。打開該文件,將`run`函數(shù)修改為以下代碼:
```php
public function run()
{
DB::table('articles')->delete();
for ($i 0; $i < 10; $i ) {
AppArticle::create([
'title' > 'Title ' . $i,
'body' > 'Body ' . $i,
'user_id' > 1,
]);
}
}
```
保存文件后,我們還需要運(yùn)行以下命令將Seeder加入自動加載系統(tǒng):
```
composer dump-autoload
```
然后執(zhí)行以下命令來填充數(shù)據(jù):
```
php artisan db:seed
```
現(xiàn)在,刷新數(shù)據(jù)庫中的"articles"表,你應(yīng)該能看到已經(jīng)插入了10行假數(shù)據(jù)。
通過使用Laravel的Migration和Seeder功能,我們可以輕松地連接數(shù)據(jù)庫并填充數(shù)據(jù)。這些功能使得開發(fā)者可以更加高效地進(jìn)行數(shù)據(jù)庫操作,提高開發(fā)效率。