我有一個處理視頻文件格式的上傳控制器。在上傳控制器中,您可以瀏覽上傳的所有視頻並觀看它們。在函數watch中,我有一個comments元素,它用用戶id(當前登錄的用戶留下的留言)uploadid(上傳的當前正在觀看的)和評論(用戶評論)更新評論表。CakePHP 2.0 - 2.1,從控制器查詢不同型號
我已經完成了表單工作,但是我不確定如何從註釋表中獲取信息,例如必須執行的查詢?
有什麼建議嗎?
我有一個處理視頻文件格式的上傳控制器。在上傳控制器中,您可以瀏覽上傳的所有視頻並觀看它們。在函數watch中,我有一個comments元素,它用用戶id(當前登錄的用戶留下的留言)uploadid(上傳的當前正在觀看的)和評論(用戶評論)更新評論表。CakePHP 2.0 - 2.1,從控制器查詢不同型號
我已經完成了表單工作,但是我不確定如何從註釋表中獲取信息,例如必須執行的查詢?
有什麼建議嗎?
我看到你的其他帖子CakePHP Elements not updating table,所以我有點想你的情況。看起來你是用Post模型代表評論。
您想在您的UploadsController中查詢Post模型中的數據嗎?
如果您的評論表名爲comments
,則需要確保它與您的發佈模型相關聯。如果Cake遵循Cake的命名約定,它會自動將模型和數據庫表關聯起來。但是,如果他們其實不同,你可以發表你的模型指定自定義數據庫表:
<?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暗示Post只能屬於單個上傳。
最後,現在的模型協會的成立,你可以在一個控制器訪問相關機型:
<?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);
}
...
}
?>
感謝回答,我用的是HABTM因爲如果我使用的hasMany我得到一個錯誤 數據庫錯誤 錯誤:SQLSTATE [23000]:完整性約束違規:1052 where子句中的'uploadid'列不明確 使用$ related_comments我得到以下錯誤; 致命錯誤:調用第57行上的/Applications/XAMPP/xamppfiles/htdocs/evolvids/app/Controller/UploadsController.php中的非對象上的成員函數find()查找另外還有,我已經放棄了註釋表和模型,只是把它稱爲帖子,任何想法? – 001221 2012-04-12 14:50:40
ok我創建了數據庫錯誤,但是(我記得這是我使用HABTM的原始原因),當使用hasMany語句時,從數據庫回顯的信息在頁面上被重複3次?看不出爲什麼會發生這種情況,我已將限制設置爲1,那也沒什麼區別,對於爲什麼發生這種情況的任何想法? – 001221 2012-04-12 15:21:39
不用擔心,因爲如果我將它更改爲$ this-> Post而不是$ this-> Upload-> Post它完美的工作!由於它在頁面上的重複條目,我保留了原始的HABTM。感謝您的幫助,雖然:) – 001221 2012-04-12 15:26:20