matthewbdaly/laravel-flatpages

Laravel 平页面包。受 Django 的 flatpages 启发

1.2.2 2018-01-11 11:32 UTC

This package is auto-updated.

Last update: 2024-08-28 07:28:04 UTC


README

Build Status Coverage Status

Laravel 的 flatpages 实现。

安装

$ composer require matthewbdaly/laravel-flatpages

使用

此包不仅包括一个模型及其关联的存储库和装饰器,还包括一个用于处理请求的控制器和视图。但是,它不包括路由 - 这是因为理想情况下,平页面的路由应该是您路由中的最后一个,因为它可能会干扰其他路由。除非所有平页面都位于某个特定路由下,您应该确保此路由是最后执行的,否则您将遇到问题。不要说我没有警告过你!

控制器位于 Matthewbdaly\LaravelFlatpages\Http\Controllers\FlatpageController,并且您的路由应调用 page() 方法,将路径作为单个参数传递

Route::get('{path}', '\Matthewbdaly\LaravelFlatpages\Http\Controllers\FlatpageController@page');

或者,您可以使用位于 Matthewbdaly\LaravelFlatpages\Http\Middleware\FlatpageMiddleware 的中间件,这可能更方便。请注意,它将在每个404响应上运行,并且应将其设置为最后一个全局中间件。

覆盖视图

默认视图是 flatpages::base,但这几乎肯定不是您想要的,因此您需要在项目中的 resources\views\vendor\flatpages\base 创建一个新版本。显然,这可以以通常的方式扩展或包含其他视图。

每个 flatpage 对象都有一个 template 字段。默认值为 null,它将使用 flatpages::base,但您可以将其设置为指向任何其他您想要使用的视图。显然,您的视图需要使用与默认视图相同的变量,但使用此方法,您可以创建多个视图,这些视图可以被一个或多个模板使用,这意味着内容的一部分可以保留在视图中,而另一部分在数据库中。这使得该包更加灵活,您可以选择用户可以自行管理哪些内容以及您可以控制哪些内容。