rinvex / laravel-pages
Rinvex Pages 是您 Laravel 内容管理系统 (CMS) 的一个重要组成部分,它提供了一种简单而强大的方式来创建和管理页面,您可以对它们的 URL、激活状态、标题、内容和其他属性进行完全控制。
Requires
- php: ^8.1.0
- illuminate/console: ^10.0.0 || ^11.0.0
- illuminate/database: ^10.0.0 || ^11.0.0
- illuminate/http: ^10.0.0 || ^11.0.0
- illuminate/routing: ^10.0.0 || ^11.0.0
- illuminate/support: ^10.0.0 || ^11.0.0
- rinvex/laravel-support: ^7.0.0
- spatie/eloquent-sortable: ^4.0.0
- spatie/laravel-sluggable: ^3.4.0
- symfony/console: ^6.2.0
Requires (Dev)
- codedungeon/phpunit-result-printer: ^0.32.0
- illuminate/container: ^10.0.0 || ^11.0.0
- phpunit/phpunit: ^10.1.0
This package is auto-updated.
Last update: 2024-08-16 17:02:01 UTC
README
Rinvex Pages 是您 Laravel 内容管理系统 (CMS) 的一个重要组成部分,它提供了一种简单而强大的方式来创建和管理页面,您可以对它们的 URL、激活状态、标题、内容和其他属性进行完全控制。
安装
-
使用 composer 安装此包
composer require rinvex/laravel-pages
-
发布资源(迁移和配置文件)
php artisan rinvex:publish:pages
-
使用以下命令执行迁移
php artisan rinvex:migrate:pages
-
完成!
使用方法
创建您的页面
要开始,您只需按照以下方式创建一个新页面
$page = app('rinvex.pages.page')->create([ 'uri' => 'test', 'slug' => 'test-page', 'route' => 'frontend.pages.test', 'title' => 'Test Page', 'view' => 'test-page', ]); // Deactivate the page $page->deactivate(); // Activate the page $page->activate(); // Get all pages $pages = app('rinvex.pages.page')->all(); // Get active pages $pages = app('rinvex.pages.page')->where('is_active', true)->get();
备注
- 所有活动页面都会自动注册到您的应用程序路由器中,带有页面属性,因此我们上面创建的示例页面可以通过 URL
http://your-project/test
访问,您也可以使用命名路由route('frontend.pages.test')
生成页面 URL,正如您预期的那样。访问该页面的结果是页面渲染视图的内容。- Rinvex Pages 会自动注册活动页面的路由,但您可以在需要更多灵活性编写自己的路由和可能链接到自定义控制器的情况下禁用路由自动注册,这可以通过在安装步骤中已发布的配置文件
config/rinvex.pages.php
中完成。- Rinvex Pages 预期您在将页面记录设置之前创建自己的视图,并且该视图可以位于任何位置并包含任何内容。重要的是要知道,所有页面视图默认情况下都可以访问
$page
实例变量,因此您可以访问页面的任何属性。
高级:将资源附加到页面
有时您需要将其他资源附加到特定页面,例如稍后作为“相关内容”显示,表示层由您实现,但以下是如何以编程方式附加这些资源的说明。
要将其他资源附加到任何页面,请遵循以下两个步骤
-
在您需要附加的资源中使用
\Rinvex\Pages\Traits\Pageable
特性。 -
将您的资源注册为
pageable
,并在页面的模型中为您的资源添加 mutator setter/getter 支持。这是在服务提供程序的boot
方法中完成的。以下是我们附加到页面的Article
资源的示例
use App\Models\Article; use Illuminate\Database\Eloquent\Relations\MorphToMany; app('rinvex.pages.pageables')->put('article', Article::class); app('rinvex.pages.page')->macro('setArticlesAttribute', function ($articles) { static::saved(function (self $model) use ($articles) { $model->entries(Article::class)->sync($articles, true); }); }); app('rinvex.pages.page')->resolveRelationUsing('articles', function ($pageModel): MorphToMany { return $pageModel->entries(Article::class); });
更新日志
有关项目的完整历史记录,请参阅 更新日志。
支持
以下支持渠道随时可供您使用
贡献 & 协议
感谢您考虑为此项目做出贡献!贡献指南可以在 CONTRIBUTING.md 中找到。
欢迎提交错误报告、功能请求和拉取请求。
安全漏洞
如果您在此项目中发现安全漏洞,请发送电子邮件至 help@rinvex.com。所有安全漏洞都将得到及时联系。
关于Rinvex
Rinvex是一家成立于2016年6月的开罗,埃及的软件解决方案初创公司,专注于为中小企业提供集成企业解决方案。我们相信,我们的驱动力——价值、触达和影响力是我们与众不同的地方,通过软件的力量释放我们哲学的无限可能。我们喜欢称之为“与生活同步的创新”。这就是我们如何为推动人类进步做出自己的贡献。
许可证
本软件根据 MIT 许可证 (MIT) 发布。
版权所有 © 2016-2022 Rinvex LLC,部分权利保留。