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