add:新增Collection toTree方法

This commit is contained in:
JaguarJack
2020-10-21 08:12:07 +08:00
parent 538006c3c6
commit 9baadccfbb
7 changed files with 43 additions and 8 deletions

View File

@@ -0,0 +1,12 @@
<?php
namespace catcher;
use think\model\Collection;
class CatchModelCollection extends Collection
{
public function toTree($pid = 0, $pidField = 'parent_id', $children = 'children')
{
return Tree::done($this->items, $pid, $pidField, $children);
}
}

View File

@@ -2,7 +2,9 @@
namespace catcher\traits\db;
use catcher\CatchModelCollection;
use catcher\Utils;
use think\Collection;
trait BaseOptionsTrait
{
@@ -186,4 +188,25 @@ trait BaseOptionsTrait
return $model->save();
}
/**
* rewrite collection
*
* @time 2020年10月20日
* @param array|iterable $collection
* @param string|null $resultSetType
* @return CatchModelCollection|mixed
*/
public function toCollection(iterable $collection = [], string $resultSetType = null): Collection
{
$resultSetType = $resultSetType ?: $this->resultSetType;
if ($resultSetType && false !== strpos($resultSetType, '\\')) {
$collection = new $resultSetType($collection);
} else {
$collection = new CatchModelCollection($collection);
}
return $collection;
}
}