繼續跑官方教材

https://twillcms.com/guides/page-builder-with-blade/creating-the-page-module.html

執行指令

php artisan twill:make:module pages

會建立 pages 模組

對應的檔案變化可以在這查看

https://github.com/howtomakeaturn/twill-play/commit/d18bd06d566b135353d4230ca8a97efbddaded6f

建立了很多檔案到 app 底下,可見背後的哲學是:

接下來就當成是一般的 laravel app,自由開發吧!

只是在建立 app 的時候 可以使用許多 twill 功能輔助開發!


然後新增的資料表如下

pages
page_revisions
page_slugs
page_translations

通通都沒有 twill_ 這樣的 prefix,所以「模組」應該視為「專屬於你 app 的內容」

跟前面的「檔案都直接在 app 底下」相呼應 滿合理的設計!

那麼我可以在那個 migration 檔案 database/migrations/2024_05_22_013232_create_pages_tables.php 內新增我自己想加的欄位嗎?

This file will create the minimum required tables and columns that Twill uses to provide the CMS functionality. Later in the guide we may add some more fields to the database, but will will do that in a new migration.

Once you are more experienced with Twill, you may want to add fields at this moment, before you run the migrate command. That way, you do not have to immediately add a new migration file.

也就是說 官方歡迎你擴充這幾張 table

然後要新增一筆 migration 或者直接在這修改 都可以!


直接打開後台面板 並不會看到 pages 模組,twill 不會自動偵測你建立的模組

要在 AppServiceProvider 手動登記

        TwillNavigation::addLink(
            NavigationLink::make()->forModule('pages')
        );

接著,就可以在後台建立第一筆資料囉!

建好之後,會發現在四個資料表內,各自多了一筆資料

pages
page_revisions
page_slugs
page_translations

我剛建了代號 my-1st 的資料,後台顯示一個網址 http://twill-play.local/en/pages/my-1st

打開會發現根本沒有頁面!

這表示 twill 目前主要是處理 CMS 與後台面板的東西 沒有前台頁面 那個要另外做!

所以 app/Http/Controllers/Twill/PageController.php 檔案是代表後台的模組管理 controller

然後 routes/twill.php 裡面登記的

TwillRoutes::module('pages');

也是代表登記後台的模組管理相關 routes

所以是要你自己在 routes/web.php 處理你的前台 routes 吧!

其實,我覺得這樣的設計,真的很清楚很漂亮!只是對新手來說,會覺得工程較複雜、檔案很分散吧!

接著就來建前台頁面吧!


共有 0 則留言