nfragkos / eloquenty
Statamic 插件,允许您通过 Eloquent 将特定集合条目存储到数据库中。
Requires
- php: ^8.2.0|^8.3.0
- laravel/framework: ^10.0|^11.0
- statamic/cms: ^v5.3.0
- dev-main
- v3.0.1
- v3.0.0
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v2.0.0-beta.5
- v2.0.0-beta.4
- v2.0.0-beta.3
- v2.0.0-beta.2
- v2.0.0-beta.1
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.0
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.1
- v1.0.0
- v1.0.0.rc.1
- v0.9-beta.10
- v0.9-beta.9
- v0.9-beta.8
- v0.9-beta.7
- v0.9-beta.6
- v0.9-beta.5
- v0.9-beta.4
- v0.9-beta.3
- v0.9-beta.2
- v0.9-beta.1
- dev-dev
- dev-bug-asset-actions
- dev-statamic-v4
This package is auto-updated.
Last update: 2024-09-28 17:54:51 UTC
README
此包允许您通过 Laravel 的 Eloquent ORM 将特定集合的条目存储到数据库中。
出于性能原因,结构被禁用。
要求
- PHP 8+
- Statamic v4
工作原理
Eloquenty 使用 Statamic Eloquent Driver (https://github.com/statamic/eloquent-driver),但进行了修改,允许使用该驱动器为特定集合条目而不是每个条目。
标准集合和 Eloquenty 集合都将显示在
/cp/collections
下,但条目列将显示“由 Eloquenty 管理”的消息。
Eloquenty 集合在单独的路由
/cp/eloquenty/collections
下进行管理,这是 /cp/collections
路由组的克隆,但进行了修改,以使用 Eloquenty\Entries 下的 Entry 和 EntryRepository 类,这些类使用 Eloquent ORM。与 Entry 相关的类和控制器扩展了原始的 Statamic 类。
有一个中间件,当在 /cp/collections/{collection}
上点击以查看 /cp/collections
下的 Eloquenty 集合时,它会从 /cp/collections/{collection}
重定向到 /cp/eloquenty/collections/{collection}
。
应在原始 /cp/collections
路由下执行集合修改。
安装
您可以通过以下方式使用 composer 安装此包:
composer require nfragkos/eloquenty
该包将自动注册自己。
安装后
-
发布 eloquenty 配置和迁移文件
php artisan vendor:publish --provider="Eloquenty\ServiceProvider"
-
运行
php artisan migrate
以创建 Eloquenty 表。
(确保 Laravel 配置正确且已创建模式。见 https://laravel.net.cn/docs/8.x/database#configuration) -
在 config/eloquenty.php 中创建新集合或输入现有集合句柄
'collections' => [ 'blog', ],
这意味着博客集合的条目将由 Eloquenty 处理。
-
如果您将现有集合输入到 Eloquenty 配置中,有一个导入命令可以导入条目到数据库
php artisan eloquenty:import-entries blog
请在验证条目已成功导入后,从文件系统中删除您的集合条目。
使用方法
Eloquenty 现应在控制面板导航菜单的内容部分下可见。Eloquenty 集合的 CRUD 与标准集合相同。
Antlers
在 Antlers 模板中使用 eloquenty
标签而不是集合标签来处理 Eloquenty 集合
{{ eloquenty from="blog" limit="10" taxonomy:tags="demo|example" sort="date:desc" }}
<a href="{{ url }}">{{ title }}</a>
{{ /eloquenty }}
数据检索和处理
调用集合存储库的 queryEntries() 方法将返回 Eloquenty 集合的正确 QueryBuilder
\Statamic\Facades\Collection::find('blog')->queryEntries()
或者,您可以使用 Facade Eloquenty::repository() 方法或 EloquentyEntry::query() 来检索 EntryRepository 实例(实现 Statamic\Contracts\Entries\EntryRepository
)
Eloquenty\Facades\Eloquenty::repository()
Eloquenty\Facades\EloquentyEntry::query()
请注意,调用 whereCollection() 方法将获取表中的所有条目。您应使用返回查询构建器实例的 query() 方法来构建您的查询。
变更日志
请参阅变更日志以获取更多关于最近更改的信息。
贡献
欢迎提交拉取请求,并将获得全部认可。
- 从
main
分支上分叉仓库并创建你的分支。 - 如有需要,请更新README文件。
- 确保你的代码遵循PSR-2编码标准。
- 提交拉取请求!
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。
致谢
非常感谢Statamic为Eloquent驱动程序和出色的CMS所做的贡献 ❤️
咖啡
如果你喜欢这个插件,请考虑买我一杯咖啡