已經可以在後台管理資料、也可以在前台顯示頁面了
接下來我想知道:如何替模組新增欄位呢?這是 CMS 的核心功能
目前的 pages 模組,編輯的後台有 title 與 description 兩個欄位(都是用 <input type="text" />
管理)
在 resources/views/site/page.blade.php
也可以輕易取得這兩個欄位的值
{{ $item->title }}
<br />
{{ $item->description }}
這兩個值實際存在資料庫的哪裡呢?
會發現並不在 pages
table 內,而是出現在 page_translations
table 內
(我猜測,如果沒開啟多語功能,應該就是出現在 pages
table 內了?)
除此之外,也會在 page_revisions
的 payload 看到這兩個欄位的值,但這應該是「歷史修改紀錄」
類似 log 的功能,主要是以 page_translations
欄位為主吧!
值得一提的是,title 與 description 是原生的預設欄位
上次輸入 php artisan twill:make:module pages
指令時,就自動在 migration 內出現這兩行了
$table->string('title', 200)->nullable();
$table->text('description')->nullable();
這個設計顯然是 seo 考量,大家有把握的話,migration 內容隨意修改,我認為無所謂。
假設我今天想要擴充這個模組,讓每個頁面下方可以顯示一段「備註」
我想增加 notes
欄位,並且希望在後台使用 <textarea><textarea/>
管理,該怎麼做呢?
首先,打開 Twill/PageController 檔案
會看到 getForm 那邊有 description 的定義
我直接這樣加一段試試看
$form->add(
Input::make()->name('notes')->label('Notes')->type('textarea')->translatable()
);
參考資料:https://twillcms.com/docs/form-fields/input.html
打開後台看看,會看到真的出現了 Notes 欄位的文字區塊!這非常方便
目前我們還沒新增 migration 檔案,所以實際上資料庫存不了這欄位
但就硬著頭皮按下 Update 看看吧?
結果居然跳出 Content saved. All good!
查看資料庫,會看到 page_revisions
的 payload 有出現 notes
但我更新 page.blade.php
{{ $item->title }}
<br />
{{ $item->description }}
<br />
{{ $item->notes }}
根本就沒有內容。所以這邊的設計有點小奇怪,按下 Update 應該跳出 error 比較好。
但是沒關係 瑕不掩瑜
來正式修改資料表吧
php artisan make:migration add_notes_to_pages_module
內容就放
public function up(): void
{
Schema::table('page_translations', function (Blueprint $table) {
$table->text('notes')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('page_translations', function (Blueprint $table) {
$table->dropColumn('notes');
});
}
然後打開 Models/Page.php
在 $fillable
跟 $translatedAttributes
陣列加入 'notes'
(我猜測,根據開啟多語功能與否,這兩個陣列其實擇一修改即可?沒關係先硬上)
這樣就大功告成囉!
打開網址 http://twill-play.local/pages/my-1st 會看到新的欄位正確顯示!
這次的 commit 內容可參考 https://github.com/howtomakeaturn/twill-play/commit/fef0e19a0e5d2ecaf3e87da683fb9690bda34976
順帶一提,官方文件 https://twillcms.com/docs/form-fields/input.html
提到新增欄位是寫
Schema::table('articles', function (Blueprint $table) {
...
$table->string('subtitle', 100)->nullable();
...
});
// OR
Schema::table('article_translations', function (Blueprint $table) {
...
$table->string('subtitle', 250)->nullable();
...
});
注意那個 OR
這邊應該是看有否開啟多語設定
也就是只要更新一張 table 即可
這流程真的非常棒,包含 wordpress 在內的許多 CMS,在新增欄位的時候,程式碼本身不需修改
欄位定義會出現在 database 內。雖然方便,但是後續很難以維護、擴充
反觀上述 twill 流程,幾乎就是平常 laravel 工程師的工作流程而已
後續就算交給一個只熟 laravel 而完全不會 twill 的人也沒關係,他可以自行在 page.blade
使用模組的資料
自由地開發他想要的頁面與樣式!
米朵外送茶賴353797#高雄左營區外約旅館TG搜索@cok68#鳳山區艾旅金鳳凰旅館外約初次短期下海兼職#小港區出差外約旅港#三民區外約老司機吃魚喝茶#苓雅區旅遊叫小姐學生妹外約打炮
學生妹推薦 #私房菜 學生妹大特價
【#國立學生妹2個】 ❤ 菜菜 158cm Ccup 21歲 44kg 特色:清純 皮膚超級白皙 粉奶 ❤ 拉妹 160cm Dcup 20歲 47kg 特色:大奶大眼蜜桃臀酒窩 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
【#醫學學生妹1個】 ❤冰冰 155cm Bcup 19歲 43kg 特色:清純害羞被調教的類型 只有過一次性經驗 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
【#正修科技學生妹1個】 ❤妮妮 162cm E奶 50kg 22歲 特色:美腿巨乳兼職麻豆高顏值 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
【#師範學生妹】 ❤安安 158cm Dcup 18歲 45kg 特色:幼齒 火辣身材 床上騷 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
【#輔英學生妹3個】 ❤妞妞 158cm Dcup 20歲 44kg 特殊:大奶高顏值小騷貨 ❤ 小波 165cup Dcup 21歲 48kg 特色:美腿水蛇腰兼職外拍麻豆 ❤果果 152cm Acup 18歲 42kg 特殊:貧乳嬌小幼齒可愛清純 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
米朵外送賴353797#台北中山區旅館飯店叫小姐TG搜索@cok68#萬華區出差約汽車旅館外送妹妹#信義松山區按摩舒壓放鬆外約旅館#內湖旅館外約旅館叫學生妹TG搜索@cok68
學生妹都放假啦 ~ 今日推薦學生妹區
司司 161/45kg/C/21歲
幼齒學生妹 甜美可愛 青澀 清純 鄰家女孩
笑容超超超甜的學生妹妹 可抱入懷裡享受她帶來的服務噢
【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
沫沫 158/44kg/B+/19歲
幼嫩嫩妹 極品嫩乳粉鮑 可調教 妹妹剛開苞沒多久~
跟她做愛猶如處女般緊緻 筷子腿 態度好 會害羞 聽話 配合高
【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
小艾 163/45kg/C/22歲 高顏質下海初兼 不止有臉蛋 還有超吸睛身材 重點服務也很棒 貼心不偷時 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
寶貝 162/46kg/D/20歲 翹臀 臉蛋精緻 粉鮑 情趣內衣 絲襪美腿 性感誘人 點起你心中的欲火 床上很開放 約她解鎖更多性愛姿勢 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
重重 161/46kg/E/19歲 童顏巨乳小隻罵 很好騎 擁有女生都羨慕的魔鬼身材 會搖 蜜桃臀很緊實 撞上去滿滿肉感 會的姿勢很多 大膽敢玩 會的姿勢很多 矯情性格好 服務更好 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
米朵外送茶賴353797#台中東區西區外約旅館#沙鹿豐源外送花沐蘭溫莎堡旅館#北屯區外送大奶學生妹貧乳小隻馬TG搜索@cok68#大雅區叫在校生援交妹外約旅館
中部試車:
嶺東科大 甜乙心 158.46.D.20歲
小隻馬 年輕粉嫩的肉體很難讓人把控的住 潔白皮膚 摸起來滑滑的 會自慰 自慰的時候會淫叫喔 臀部翹起來時 會讓人忍不住想去衝擊她 CP值超高 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
中興大學 甜汶柔 162.55.F.21歲
巨乳學生妹 還可接無套哦 有哥哥想要來喝這杯好茶嘛?年紀雖然小 但經驗可不少 會說各種騷話 耳朵吹氣 輕工挑逗 搖晃爆乳 叫聲好聽 她幾乎沒有服務和尺度上的限制 超好配合der 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
勤益大學 甜美芹 158.45.C.18歲
蘿莉的外表下是叛逆的心 單親家庭長大的叛逆少女 有著極強的自我風格 身材嬌小看似可愛 一旦哥哥你大意 可是會失精 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
4#台灣體大 甜玓瓅 166.48.D.22歲 妹妹性欲很強 床上嫵媚動人 水多又耐操 清秀臉蛋淫蕩騷嫩穴 求插 求幹 熱愛跳舞健身 笑起來非常陽光 惹火度百分百的性感寶貝 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
明道大學 甜靖晴 158.46.D.20歲
皮膚白皙 粉嫩巨乳 窄小緊實嫩穴 娃娃音 顏值絕對爆表 女友fu十足 性格超好的 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】
弘光科大 甜苡然 155.44.B.19歲
可愛型學生妹 滿滿的女友fu 性格活潑 不做作 青澀害羞的臉龐 翹著屁股等你後入 絕對讓你硬爆 【賴ID:353797或賴eyey168】 【學生頻道:https://t.me/eyey168】