You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于OctoberCMS创建单篇文章的路由

如何创建展示单篇文章的Laravel路由?

嗨,这事儿其实挺简单的,我给你两种常用的实现方式,你可以根据自己的需求来选:

1. 基础ID匹配写法

这种写法和你现有获取所有文章的路由风格一致,直接通过文章ID查询:

Route::get('posts/{id}', function($id) {
    // 用findOrFail能确保当ID不存在时自动返回404页面,比返回null更友好
    $post = Post::with(['image','category'])->findOrFail($id);
    return $post;
});

2. 更优雅的路由模型绑定写法

Laravel自带的路由模型绑定功能能让代码更简洁,框架会自动根据URL参数查找对应的模型实例:

// 记得先引入Post模型(如果你的模型在App\Models目录下)
use App\Models\Post;

Route::get('posts/{post}', function(Post $post) {
    // 加载文章关联的图片和分类,和你获取列表的逻辑保持一致
    $post->load(['image','category']);
    return $post;
});

额外建议:用控制器管理逻辑

如果你的项目后续逻辑会更复杂,推荐把单篇文章的展示逻辑放到控制器里,结构更清晰:

  1. 先创建PostController并编写show方法:
namespace App\Http\Controllers;

use App\Models\Post;

class PostController extends Controller
{
    public function show(Post $post)
    {
        $post->load(['image','category']);
        return $post;
    }
}
  1. 然后在路由文件里定义:
use App\Http\Controllers\PostController;

Route::get('posts/{post}', [PostController::class, 'show']);

这样不管后续要加权限验证、数据格式化还是其他逻辑,都能很方便地在控制器里扩展~

内容的提问来源于stack exchange,提问作者georgeWilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 23:27:35