[英]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.