在我的代码中,我重用了一个list-find操作,它使用自定义的keyField和valueField,如下所示:
->find('list', [
'keyField' => 'key',
'valueField' => 'value'
])我想定义一个定制的list-find方法来设置keyField和valueField,这样我就不用重复了。此外,它应该与其他自定义查找方法链接。
发布于 2018-07-29 07:53:19
编辑:在自定义查找器:中调用findList的简单而清晰的解决方案
public function findCustomList(Query $query, array $options)
{
return $this->findList($query, [
'keyField' => 'key',
'valueField' => 'value',
]);
}第一个答案:
可以使用查询对象的formatResults-方法来注册格式化程序,该格式化程序将结果格式化为所需的列表:
public function findCustomList(Query $query, array $options)
{
$query->formatResults(function ($results) {
/** @var \Cake\Collection\CollectionInterface $results */
$formatedResults = [];
foreach ($results as $key => $result) {
$formatedResults[$result->key] = $result->value;
}
return new Collection($formatedResults);
});
return $query;
}https://stackoverflow.com/questions/51578367
复制相似问题