Мне нужно получить это, чтобы удалить результаты X, скажем, для этого примера я хочу удалить один результат. Но я хочу, чтобы все остальные результаты остались такими же.
Я следую:
а также
https://api.cakephp.org/3.3/class-Cake.Collection.Iterator.MapReduce.html
Прямо сейчас я пытаюсь добиться, использую карту и получить те же самые результаты назад. Поэтому я могу позже добавить свои условия, чтобы удалить единичные результаты.
Мне нужно, чтобы результаты после публикации оставались объектом запроса, чтобы я мог разбивать свои результаты на страницы (я не уверен, что это даже возможно)
$mapper = function ($query, $key, $mapReduce) {
$everything = 'all';
$mapReduce->emitIntermediate($query, $everything);
};
$reducer = function ($query, $status, $mapReduce) {
$mapReduce->emit($query,$status);
};
$query = /* ... Make any query on anything ... */
$query->mapReduce($mapper,$reducer);
$paginateforview = $this->paginate($query);
Это приводит к тому, что мои результаты просто подсчитывают количество элементов в результатах в виде массива.
Я хотел бы привести пример того, как карта / уменьшить ничего не уменьшает или, если это вообще возможно.
Я пробовал только карту, но согласно документации это работа для карты / уменьшить на карту не может удалить результат.
https://book.cakephp.org/3.0/en/orm/query-builder.html
$query->formatResults(function (\Cake\Collection\CollectionInterface $results) {
return $results->map(function ($row) {
//Something that unsets the result I tried unset($row)
return $row;
});
});
Таким образом, мне нужно, чтобы картограф вернул все, а редуктор вычел весь результат или более простой пример использования, чем в кулинарной книге.
ПРИМЕЧАНИЯ. Я понимаю, что редактирование базы данных таким образом, чтобы мой запрос позволял фильтровать результаты, было бы оптимальным, но сейчас я создаю пользовательские отчеты и не могу просто добавлять объекты в базу данных.
Задача ещё не решена.
Других решений пока нет …