iT邦幫忙

2022 iThome 鐵人賽

DAY 10
2
Modern Web

Laravel 9 漫遊,享受魔法般的極速網頁開發體驗系列 第 10

Day 10:Laravel 9 資料庫操作與 seeder 的 WithoutModelEvents

  • 分享至 

  • xImage
  •  

連線資料庫之後,再來就是開始撰寫對資料庫的操作了。

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 資料庫相關操作的部分,就分享到這邊。我們明天見!


上一篇
Day 09:新的資料庫遷移作法:Squashing Migrations
下一篇
Day 11:網站會員登入:談 Laravel Breeze
系列文
Laravel 9 漫遊,享受魔法般的極速網頁開發體驗30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言