【问题标题】:Custom finder method in cakephp paginationcakephp分页中的自定义查找器方法
【发布时间】:2018-06-05 13:07:05
【问题描述】:

控制器代码:

public $paginate = [
        'fields' => ['Subscribes.id'],
        'limit' => 1,
        'order' => [
            'Subscribes.created' => 'desc'
        ]
    ];

控制器方法代码:这里 $type 是变量,值可以是整数 1,2 3 等

        $customFinderOptions = [
            'type' => $type
        ];

        $this->paginate = [
            'finder' => [
                'typed' => $customFinderOptions
            ]
        ];

        $contacts = $this->paginate($this->Subscribes);

型号代码:

public function findTyped(Query $query, array $options) {

        $type = $options['type'];
        return $query->where(['type' => $options['type']]);
    }

错误:如您所见,limit 设置为 1,但它返回所有记录。这意味着分页不适用于自定义查找器方法。

【问题讨论】:

    标签: cakephp cakephp-3.0


    【解决方案1】:

    它不起作用,因为您正在覆盖您的 $paginate 变量。在你的控制器操作中设置一次,使用array_merge(),或者只更新一个键:

    $this->paginate["finder"] = [...];
    

    【讨论】:

      猜你喜欢
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多