我们将介绍使用 PHP 框架 Laravel 和无头 CMS 的 microCMS 实现内容管理功能的方法。我们将以动手操作的形式描述 Laravel 的实现和 microCMS 的内容管理。
点击此处查看上一篇文章
在本文中,我们将亲身体验 Laravel 的实现。
创建一个新的 Laravel 项目
创建一个新的 Laravel 项目来创建这个应用程序。
我经常参考以下文章。
microCMS SDK介绍
在查看官方文档时,Laravel 将设置通过点击 microCMS API 来获取数据。
SDK 的详细设置在以下存储库中进行了说明。
$ composer require microcmsio/microcms-php-sdk
将 microCMS API 密钥添加到 .env
.env
MICRO_CMS_DOMAIN="microCMSのAPIを作成した際のサービスID"
MICRO_CMS_API_KEY="microCMS管理画面のサイドバーにある権限管理メニューの中のAPIキーを入力"
为 microCMS 创建服务类
应用程序/服务/MicroCmsService.php
<?php
namespace App\Services;
use Microcms\Client;
class MicroCmsService
{
private Client $httpClient;
public function __construct()
{
$microCmsDomain = env('MICRO_CMS_DOMAIN');
$microCmsApiKey = env('MICRO_CMS_API_KEY');
$this->httpClient = new Client(
$microCmsDomain,
$microCmsApiKey
);
}
public function getContents(string $contentName): array
{
return $this->httpClient->list($contentName)->contents;
}
}
路由,创建控制器
创建路由
路线/web.php
<?php
use App\Http\Controllers\ArticleController;
use Illuminate\Support\Facades\Route;
Route::get('/articles', [ArticleController::class, 'index'])->name('articles.index');
创建控制器
app/Http/Controllers/ArticleController.php
<?php
namespace App\Http\Controllers;
use App\Services\MicroCmsService;
use Illuminate\View\View;
class ArticleController extends Controller
{
private MicroCmsService $microCms;
public function __construct(MicroCmsService $microCms)
{
$this->microCms = $microCms;
}
/**
* 記事一覧を取得
* @return View
*/
public function index(): View
{
$articles = $this->microCms->getContents('articles');
return view('articles.index', [
'articles' => $articles,
]);
}
}
创建视图(这次我是直接写样式以节省时间,但建议为CSS创建一个文件。)
@foreach ($articles as $article)
<div style="margin: 20px; background-color: lightcyan; border-radius: 10px; padding: 15px;">
<p>タイトル {{ $article->title }}</p>
<p>本文 {!! $article->detail !!}</p>
<p>更新日 {{ $article->updatedAt }}</p>
</div>
@endforeach
http://localhost:8080/articles
当您访问时,将显示以下屏幕。 (酌情用自己的环境替换localhost:8080)
从 microCMS 获取和显示数据很容易?
这次就到这里了✨感谢大家一直看到最后。
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308622605.html