連線資料庫之後,再來就是開始撰寫對資料庫的操作了。
Laravel 的 Eloquent Model 操作非常的直覺,可以參考
這幾篇文章。基本上,Laravel 9 對這部分的改動不大。
更方便的是,由於我們連線是使用 Laravel Sail,初始的設置已經開放好外部的連線,以及 docker 容器內部的連線。
所以,不需要像是之前的文章這樣,再特別的去調整資料庫連線。原本預設的參數,已經可以很好的連線了。
另外值得特別注意的是,在處理 seeder 的部分,Laravel 9 加入了一個新的功能。
如果你有撰寫一些 Model 相關的事件,像是updating()
時會同時更新關聯資料表內的內容。但是在使用 seeder 初始化資料時,不希望觸發這一些事件的話,Laravel 9 提供 WithoutModelEvents
這個 trait 來協助做到這件事情
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
class DatabaseSeeder extends Seeder
{
use WithoutModelEvents;
/**
* Run the database seeders.
*
* @return void
*/
public function run()
{
$this->call([
UserSeeder::class,
]);
}
}
這樣就可以讓人更安心的去設計 Model 的事件,不用擔心會影響到 seeder 的行為了。
今天有關 Laravel 9 資料庫相關操作的部分,就分享到這邊。我們明天見!