已經在後台建立資料了,我想要立刻做出前台頁面看看

所以官方教材我跳到 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('');

來修正顯示網址的問題

真的很酷!


共有 0 則留言