改名
This commit is contained in:
+23
-7
@@ -192,17 +192,12 @@ class Collection extends AbstractCollection
|
|||||||
*/
|
*/
|
||||||
public function filter(array $condition)
|
public function filter(array $condition)
|
||||||
{
|
{
|
||||||
|
$_filters = [];
|
||||||
if (empty($condition)) {
|
if (empty($condition)) {
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
$_filters = [];
|
|
||||||
foreach ($this as $value) {
|
foreach ($this as $value) {
|
||||||
$_value = $value;
|
if (!$this->filterCheck($value, $condition)) {
|
||||||
if ($_value instanceof ActiveRecord) {
|
|
||||||
$_value = $_value->toArray();
|
|
||||||
}
|
|
||||||
$_tmp = array_intersect_key($_value, $condition);
|
|
||||||
if (count(array_diff_assoc($_tmp, $condition)) > 0) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$_filters[] = $value;
|
$_filters[] = $value;
|
||||||
@@ -210,6 +205,27 @@ class Collection extends AbstractCollection
|
|||||||
return new Collection($this->query, $_filters, $this->model);
|
return new Collection($this->query, $_filters, $this->model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $value
|
||||||
|
* @param $condition
|
||||||
|
* @return bool
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
private function filterCheck($value, $condition)
|
||||||
|
{
|
||||||
|
$_value = $value;
|
||||||
|
if ($_value instanceof ActiveRecord) {
|
||||||
|
$_value = $_value->toArray();
|
||||||
|
}
|
||||||
|
$_tmp = array_intersect_key($_value, $condition);
|
||||||
|
if (count(array_diff_assoc($_tmp, $condition)) > 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $key
|
* @param $key
|
||||||
* @param $value
|
* @param $value
|
||||||
|
|||||||
Reference in New Issue
Block a user