首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在cakephp-3中创建自定义列表查找方法?

如何在cakephp-3中创建自定义列表查找方法?
EN

Stack Overflow用户
提问于 2018-07-29 07:53:19
回答 1查看 408关注 0票数 0

在我的代码中,我重用了一个list-find操作,它使用自定义的keyField和valueField,如下所示:

代码语言:javascript
复制
->find('list', [
     'keyField' => 'key',
     'valueField' => 'value'
])

我想定义一个定制的list-find方法来设置keyField和valueField,这样我就不用重复了。此外,它应该与其他自定义查找方法链接。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-29 07:53:19

编辑:在自定义查找器:中调用findList的简单而清晰的解决方案

代码语言:javascript
复制
public function findCustomList(Query $query, array $options)
{
     return $this->findList($query, [
         'keyField' => 'key',
         'valueField' => 'value',
     ]);
}

第一个答案:

可以使用查询对象的formatResults-方法来注册格式化程序,该格式化程序将结果格式化为所需的列表:

代码语言:javascript
复制
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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51578367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档