■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

ブログコアメソッドのpaginateにconditionsを追加

binbin > ブログコアメソッドのpaginateにconditionsを追加 @ 2018/12/8 11:29
BlogTagsController.php
public function admin_index() {
	$default = ['named' => ['num' => $this->siteConfigs['admin_list_num'], 'sort' => 'id', 'direction' => 'asc']];
	$this->setViewConditions('BlogTag', ['default' => $default]);

	$this->paginate = [
		'order' => 'BlogTag.id',
		'limit' => $this->passedArgs['num'],
		'recursive' => 0
	];
	$this->set('datas', $this->paginate('BlogTag'));

	$this->pageTitle = __d('baser', 'タグ一覧');
}


このpaginateにconditionsを後付したいのですが、イベントなどで付けれるものでしょうか?
beforeFindあたりに付けられないか探してみたのですが、分かりませんでした、、、
setViewConditionこれをいじればできるのか?とも思いましたが、同様に分かりませんでした、、、
そもそもsetViewConditionは、passedArgs['num']これしか操作できないように見えた、、、
seto > Re: ブログコアメソッドのpaginateにconditionsを追加 @ 2018/12/10 10:39
こんにちは
以下のコードをControllerEventListenerのinitializeに追加すると、Pagenateのconditionsに影響を与えることはできました。
ただ、だいぶ強引な方法を使っているのでもっとスマートな方法があればいいのですが...

$Controller->request->params['named']['conditions'] = [
	'BlogPost.id = 1',
];
$Controller->Components->load('Paginator', $Controller->paginate)->whitelist[] = 'conditions';
binbin > Re: ブログコアメソッドのpaginateにconditionsを追加 @ 2018/12/10 13:47
setoさん

返信ありがとうございます!
希望通りに動作しました!

コンポーネントにホワイトリスト登録とは、全然思いつかなかったです、
ありがとうございます。


一応、配列が間違えていたので、このように直しました。
$Controller->request->params['named']['conditions'] = [
	'BlogPost.id' => 1,
];
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
9 人のユーザが現在オンラインです。 (9 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 9