bigfork/supergroupedlist

扩展了 SilverStripe 的 GroupedList,支持遍历关系

安装: 235

依赖: 0

建议者: 0

安全: 0

星星: 4

关注者: 6

分支: 1

开放问题: 0

类型:silverstripe-module

1.0.0 2015-06-09 14:10 UTC

This package is auto-updated.

Last update: 2024-09-04 22:12:36 UTC


README

Build Status Latest Stable Version Total Downloads License

扩展了 SilverStripe 的 GroupedList,支持遍历关系。

注意:根据您的数据,相同的条目可能会多次输出。例如,如果一个产品属于多个类别,并且您按类别标题分组,那么该产品将显示在每个它所属的类别下。

安装

composer require bigfork/supergroupedlist ^1.0

或者下载并解压到您文档根目录下名为 supergroupedlist 的文件夹中。

用法

直接使用与 GroupedList 一样的方式,但使用点符号来遍历关系

public function GroupedProducts() {
	$products = Product::get();
	return SuperGroupedList::create($products);
}
<% loop $GroupedProducts.GroupedBy('Categories.Title') %>
	<h1>{$Title}</h1><!-- Category title -->
	<ul>
		<% loop $Children %>
			<li>{$Title}</li><!-- Product title -->
		<% end_loop %>
	</ul>
<% end_loop %>

您可以使用点符号遍历 has_onehas_manymany_many 关系。您提供的表示法中的最后一部分(如上例中的 Title)将同时是提取自最终组件的字段,以及用于在循环内访问该字段的 $Variable

您甚至可以一次遍历多个关系。例如,$GroupedProducts.GroupedBy('Manufacturer.Employees.FavouriteTeam.Name') 将返回一个按产品制造商的员工最喜欢的团队名称分组的产品的列表。