繼續跑官方教材
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 吧!
其實,我覺得這樣的設計,真的很清楚很漂亮!只是對新手來說,會覺得工程較複雜、檔案很分散吧!
接著就來建前台頁面吧!