Я использую CakePHP 3.xКак написать условия поиска paginate для извлечения элементов на основе связанного элемента во многих отношениях?
Я после bookmarkr учебника нашел here и here
Я хочу добавить еще одну функции, где я могу принести закладки, которые принадлежат к той же метке на основе тега ид.
я написал следующую функцию в BookmarksController
/**
* Index view by tag method
*
* @return void
*/
public function index_by_tag($tag_id) {
$conditions = [
'Bookmarks.public' => true,
];
$this->paginate = [
'conditions' => $conditions,
'contain' => [
'Users' => function ($q) {
return $q
->select(['username', 'id']);
}
],
'order' => [
'Bookmarks.updated' => 'desc',
'Bookmarks.id' => 'desc'
]
];
$this->set('bookmarks', $this->paginate($this->Bookmarks));
}
Как я должен изменять $conditions
таким образом я могу получить только те закладки, которые принадлежат к той же метке?
Имейте в виду, что закладки и теги находятся во многих отношениях.
Update1
Я нашел эту идею использования matching
. Который получает меня, что я хочу, если я использую query builder
.
См http://book.cakephp.org/3.0/en/orm/query-builder.html#using-matching-when-finding-results
Однако, нет никакого упоминания о том, как использовать matching
с постраничной.
UPDATE2
Я просто понял, что это уже пользовательский метод поиска, который делает то, что я хочу, за исключением того, что он не работает с постраничной.