superbig /craft3-collections
3.0.0
2022-05-10 07:51 UTC
Requires
- craftcms/cms: ^3.0.0-RC1
- illuminate/collections: ^8.71.0
README
注意:此插件已被弃用,因为Craft 4已包含Collections支持。
Craft CMS 3.x版本的Collections插件
在Craft中使用Laravel Collections
要求
此插件需要Craft CMS 3.0.0-beta.23或更高版本。
安装
要安装此插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目目录
cd /path/to/project
-
然后告诉Composer加载插件
composer require superbig/craft3-collections
-
在控制面板中,转到设置 → 插件,并点击Collections的“安装”按钮。
Collections概览
这里有一些关于如何使用Collections的好灵感
- Collections文档
- Laravel Collections:PHP数组升级版
- GitHub上的Laravel Collections示例
- Laravel Collections “when” 方法
- Code Bright:Eloquent Collections
- 重构到Collections
- 10个鲜为人知但非常棒的Laravel Collections方法
配置Collections
将您的宏添加到配置文件中
<?php return [ /** Add your macros here * "macros" => [ * 'toUpper' => function () { * return $this->map(function ($value) { * return strtoupper($value); * }); * }, * ], * */ "macros" => [ ], ];
使用Collections
按字母分组标签
将此宏添加到您的配置中
<?php return [ 'macros' => [ 'tagGroups' => function () { return $this->groupBy(function ($tag) { return substr($tag->title, 0, 1); }); } ], ];
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.1.2/css/bulma.css"> </head> <body> <div class="section hero is-primary"> <div class="hero-body"> <div class="container"> <h1 class="title">Tags</h1> <p class="subtitle"> Every tag on the site. </p> </div> </div> </div> <h2>Tag groups</h2> <div class="section"> <div class="container"> <ul class="has-columns has-text-centered"> {% set collection = craft.tags.group('media') | collect %} {% for letter, tags in collection.tagGroups() %} <div class="letter-group"> <h3 class="title is-1 letter">{{ letter }}</h3> <ul> {% for tag in tags %} <li class="title is-5"> <a href="/tags/{{ tag.slug }}">{{ tag.title }}</a> </li> {% endfor %} </ul> </div> {% endfor %} </ul> </div> </div> </body> </html>
由 Superbig 提供