簡體   English   中英

CakePHP 2.0-2.1,從控制器查詢不同的模型

[英]CakePHP 2.0 - 2.1, Query different model from controller

我有一個上載控制器,可以處理視頻文件格式。 在上傳控制器中,您可以瀏覽所有上傳的視頻並觀看。 在功能表中,我有一個comment元素,它用userid(當前登錄的用戶留下的評論),uploadid(當前正在觀看的已上傳的評論)和comment(用戶的評論)來更新評論表。

我的表單運行正常,但是我不確定如何從注釋表中獲取信息,例如要實施的必要查詢?

有什么建議么?

我看到您的其他文章CakePHP Elements未更新表 ,所以我有點了解您的情況。 看來您是用Post模型代表評論。

您要在您的UploadsController中從Post模型查詢數據,對嗎?

如果您的評論表名為comments ,則需要確保它與Post模型相關聯。 如果Cake和Model和數據庫表遵循Cake的命名約定,它們會自動將它們關聯起來。 但是,如果它們實際上不同,則可以為Post模型指定一個自定義數據庫表:

<?php
class Post extends AppModel {

    var $useTable = "comments" /*Or whatever you named your comments table*/

    ...
}
?>

您還必須確保在發布和上傳之間設置了模型關聯:

Post belongsTo Upload
Upload hasMany Post

我注意到您有:

Post belongsTo Upload
Upload hasAndBelongsToMany Post

它為何是HABTM? HABTM表示同一個帖子可以屬於許多不同的上載。 hasMany意味着一個帖子只能屬於一個上載。

最后,既然已經建立了模型關聯,則可以在控制器中訪問相關模型:

<?php
class UploadsController extends AppController {

    ...

    function watch ($id = null) {

        $this->Upload->id = $id;      
        $this->set('uploads', $this->Upload->read());

        /* To get related comments (Posts) */
        $related_comments = $this->Upload->Post->find('all', array(
            'conditions' => array(
                'Upload.id' => $id /* This condition makes it so only associated comments are found */
            )
        ));
        $this->set('comments', $related_comments);
    }

    ...

 }
 ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM