久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

為belongsToMany CakePHP 3 進行分頁的條件

Conditions to paginate for belongsToMany CakePHP 3(為belongsToMany CakePHP 3 進行分頁的條件)
本文介紹了為belongsToMany CakePHP 3 進行分頁的條件的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有 Semesters、Disciplines 表和一個聯合表 Semesters_Disciplines.我想在 DisciplinesController 中創建一個 action 索引,參數為 term_id,該索引只列出屬于該學期的學科,參數中傳遞了 id.我試過這個:

I have the tables Semesters, Disciplines and a jointTable Semesters_Disciplines. I want to create a action index in DisciplinesController with a semester_id as parameter, which list with paginate just the disciplines what belongs to the semester with the id passed in the parameter. I tried this:

public function index($semester_id)
{
    $options = ['semester_id' => $semester_id];
    $this->paginate = ['conditions' => $options];

    $this->set('disciplines', $this->paginate($this->Disciplines));
    $this->set('_serialize', ['disciplines']);
}

推薦答案

您必須使用使用匹配或連接的查詢才能過濾非 1:1/n-1 個關聯.

You'll have to use a query that uses matching or joins to be able to filter on non 1:1/n-1 associations.

您可以通過將查詢直接傳遞給 paginate() 方法

You can do so by either passing a query directly to the paginate() method

// ...
$this->set('disciplines', $this->paginate(
    $this->Disciplines
        ->find()
        ->matching('Semesters', function(CakeORMQuery $q) use ($semester_id) {
            return $q->where([
                'Semesters.id' => $semester_id
            ]);
        })
        ->group(['Disciplines.id'])
));
// ...

或使用自定義查找器.

// ...
$this->paginate = [
    'finder' => [
        'semesters' => [
            'semester_id' => $semester_id
        ]
    ]
];
$this->set('disciplines', $this->paginate($this->Disciplines));
// ...

// DisciplinesTable
public function findSemesters(CakeORMQuery $query, array $options)
{
    $query
        ->matching('Semesters', function(CakeORMQuery $q) use ($options) {
            return $q->where([
                'Semesters.id' => $options['semester_id']
            ]);
        })
        ->group(['Disciplines.id']);
    return $query;
}

另見

  • 食譜> 分頁> 使用控制器::分頁()
  • 食譜> 檢索數據和結果集 > 自定義查找器方法
  • Cookbook > QueryBuilder > 按關聯數據過濾
  • Cookbook > QueryBuilder > 添加聯接

這篇關于為belongsToMany CakePHP 3 進行分頁的條件的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Cannot use #39;Object as class name as it is reserved Cake 2.2.x(不能使用 Object 作為類名,因為它是保留的 Cake 2.2.x)
Session is lost after an OAuth redirect(OAuth 重定向后會話丟失)
Pagination Sort in Cakephp 3.x(Cakephp 3.x 中的分頁排序)
CakePHP Shared core for multiple apps(CakePHP 多個應用程序的共享核心)
Login [ Auth-gt;identify() ] always false on CakePHP 3(在 CakePHP 3 上登錄 [ Auth-identify() ] 始終為 false)
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 87 bytes)(致命錯誤:允許的內存大小為 134217728 字節已用盡(嘗試分配 87 字節))
主站蜘蛛池模板: 一区二区三区视频在线观看 | 国产成人影院 | 亚洲精品自拍视频 | 欧美999| 国产黄色大片在线观看 | 成人av看片 | 欧美不卡一区二区三区 | 精品自拍视频在线观看 | 国产精品久久久久久久久久久久久 | 午夜欧美日韩 | 天天插日日操 | 91亚洲国产 | 一区二区三区日韩精品 | 99精品欧美一区二区三区 | 91精品国产色综合久久 | 天天爱爱网 | 欧美精品福利视频 | 亚洲小视频在线观看 | 九九热在线精品视频 | 日韩中文字幕av | 精品一区二区三区四区五区 | 国产欧美日韩在线一区 | 午夜网| 91视频进入 | 精品国产一区二区在线 | 精品毛片| 蜜桃特黄a∨片免费观看 | 国产亚洲精品综合一区 | 国产精品自产av一区二区三区 | 日韩在线观看视频一区 | 国产亚洲精品一区二区三区 | 久久久激情 | 欧美午夜精品 | 国产欧美精品一区二区三区 | 一区精品国产欧美在线 | 国产精品久久久久久久久久 | 欧美综合在线观看 | 国产一级黄色网 | 伊人色综合久久天天五月婷 | 999久久久久久久久6666 | 精品视频久久久久久 |