CakePHP 2.0.2 paginate whitelistの仕様
paginateの第3引数のwhitelistについて。
1.3までは「urlパラメータで指定されるpaginateオプションのうち、どれを有効にするか」を指定するものでしたが、
2.0では「並び替え(sort)で指定できるカラム名」となった模様です。
たとえばarray(‘id’)と指定すれば、urlに「/sort:name」と指定しても、nameでソートされないようになります。
1.3まではurlパラメータでlimitを使用してpaginateの件数が変更されないように、whitelistに許可とするパラメータ
(order、page)のみ指定していたのですが、2.0からはこのような制御はどのようにすべきなんでしょうか?
maxLimitというオプションが追加されたので、urlから膨大な数のlimitを指定されるというリスクは無くなったわけですが・・・。
追記:
PaginatorComponentのソースを見てみました。
whitelistですが2種類ありまして、下記の使い分けがされてました。
1.PaginatorComponentのパブリック変数のwhitelist
→urlパラメータで許可されるnamedパラメータ、原則変更できない(libのソース修正となる?)
‘limit’, ‘sort’, ‘page’, ‘direction’の4つが許可されている。
2.Paginator->paginateの第3引数のwhitelist
→sortの際に許可されるカラム