我们将介绍使用 PHP 框架 Laravel 和无头 CMS 的 microCMS 实现内容管理功能的方法。我们将以动手操作的形式描述 Laravel 的实现和 microCMS 的内容管理。
点击此处查看上一篇文章
在本文中,我们将解释如何显示文章详细信息页面以及如何为文章设置标签作为高级版本。
实施文章详细信息页面
添加路由
路线/web.php
Route::get('/articles/{id}', [ArticleController::class, 'show'])->name('articles.show');
添加到 microCMS 服务类
应用程序/服务/MicroCmsService.php
public function getSingleContent(string $contentName, string $contentId): object
{
return $this->httpClient->get($contentName, $contentId);
}
添加控制器方法
app/Http/Controllers/ArticleController.php
/**
* 記事詳細を取得
* @param Request $request
* @param string $id
* @return View
*/
public function show(Request $request, string $id): View
{
$article = $this->microCms->getSingleContent('articles', $id);
return view('articles.show', [
'article' => $article,
'request' => $request
]);
}
为详情页创建视图(这次我是直接写样式以节省时间,但建议为CSS创建一个文件。)
资源/视图/文章/show.blade.php
<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>
编辑列表页面的视图
在标题中添加指向详细信息页面的链接。
仅显示标题和更新日期,而不像列表一样显示文本。
资源/视图/文章/index.blade.php
@foreach ($articles as $article)
<div style="margin: 20px; background-color: lightcyan; border-radius: 10px; padding: 15px;">
<a href="{{ route('articles.show', ['id'=>$article->id]) }}">
<p>タイトル {{ $article->title }}</p>
</a>
<p>更新日 {{ $article->updatedAt }}</p>
</div>
@endforeach
如何标记文章
有多种方法可以标记文章,但这次我们要使用多个内容引用。
微CMS设置
创建一个新的标签 API。制作方法和我之前写文章的时候一样。
这一次,将 API 名称设置为“tags”,将端点的结尾设置为“tags”。
API 模式是使用下图的内容设置的。
如下图所示设置内容。
标记文章
选择文章 API 并在“API 设置”中单击“添加字段”以添加标签字段。
将字段 ID 设置为“标签”,将显示名称设置为“标签”,将类型设置为“多个内容引用”。
当您从文章 API 中选择文章时,已添加标签字段,因此请设置并添加标签。
Laravel 侧边设置
更改列表和详细信息页面的视图
列表页面编辑
资源/视图/文章/index.blade.php
@foreach ($articles as $article)
<div style="margin: 20px; background-color: lightcyan; border-radius: 10px; padding: 15px;">
<a href="{{ route('articles.show', ['id'=>$article->id]) }}">
<p>タイトル {{ $article->title }}</p>
</a>
@foreach ($article->tags as $tag)
<span style="background: {{$tag->tagColor}}; color: #fff; padding: 5px; border-radius: 10px">{{$tag->tagName}}</span>
@endforeach
<p>更新日 {{ $article->updatedAt }}</p>
</div>
@endforeach
编辑详细信息页面
资源/视图/文章/show.blade.php
<div style="margin: 20px; background-color: lightcyan; border-radius: 10px; padding: 15px;">
<p>タイトル {{ $article->title }}</p>
@foreach ($article->tags as $tag)
<span style="background: {{$tag->tagColor}}; color: #fff; padding: 5px; border-radius: 10px">{{$tag->tagName}}</span>
@endforeach
<p>本文 {!! $article->detail !!}</p>
<p>更新日 {{ $article->updatedAt }}</p>
</div>
添加标签?
这次就是这样。谢谢大家一直看到最后✨
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308622887.html