已經在後台建立資料了,我想要立刻做出前台頁面看看
所以官方教材我跳到 https://twillcms.com/guides/page-builder-with-blade/building-a-front-end.html
建立前台控制器
php artisan make:controller PageDisplayController
注意這是 laravel 原生指令喔 跟 twill 無關
在裡面放入
<?php
namespace App\Http\Controllers;
use App\Repositories\PageRepository;
use Illuminate\Contracts\View\View;
class PageDisplayController extends Controller
{
public function show(string $slug, PageRepository $pageRepository): View
{
$page = $pageRepository->forSlug($slug);
if (! $page) {
abort(404);
}
return view('site.page', ['item' => $page]);
}
}
然後在 routes/web.php 放入
Route::get('pages/{slug}', [\App\Http\Controllers\PageDisplayController::class, 'show'])->name('frontend.page');
這時打開網址 http://twill-play.local/pages/my-1st 會看到顯示一個陽春的網頁了!
算是成功建立前台!
開發體驗也很好,基本上就是開發 laravel app 的感覺,只是用了 twill 核心在輔助!
而不是在開發 twill app,感覺好像在學一套新框架的感覺!
打開 twill 後台
會看到後台顯示網址依然是 http://twill-play.local/en/pages/my-1st
來把 i18n 先關掉吧
可以在 PageController 加入
protected function setUpController(): void
{
$this->withoutLanguageInPermalink();
}
即可修正這個問題!
這次的 commit 內容在這邊,可以看看 https://github.com/howtomakeaturn/twill-play/commit/989e5e357439e53092130dc2a4eed7befaa6c550
真的感覺就像在開發普通的 laravel app!
如果不希望前台網址有 /pages/
這樣的字串
可以在 routes/web.php 直接拿掉
後台的部份,可以在 PageController 加入
$this->setPermalinkBase('');
來修正顯示網址的問題
真的很酷!