gpt4 book ai didi

php - CakePHP 2.0 - 2.1,从 Controller 查询不同的模型

转载 作者:行者123 更新时间:2023-11-29 14:30:33 25 4
gpt4 key购买 nike

我有一个处理视频文件格式的上传 Controller 。在上传 Controller 中,您可以浏览并观看所有上传的视频。在函数 watch 中,我有一个 comments 元素,它使用 userid(当前登录的用户留下的评论)uploadid(当前正在观看的上传)和评论(用户的评论)更新评论表。

我的表单运行良好,但是我不确定如何从评论表中获取信息,例如要实现的必要查询?

有什么建议吗?

最佳答案

我看到了你的另一篇帖子CakePHP Elements not updating table ,所以我对你的情况有所了解。看来您正在用您的 Post 模型代表评论。

您想要从 UploadsController 中的 Post 模型查询数据,对吗?

如果您的评论表名为 comments,您需要确保它与您的 Post 模型关联。如果模型和数据库表遵循 Cake 的命名约定,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 意味着一个帖子只能属于一个上传。

最后,现在模型关联已设置,您可以在 Controller 中访问相关模型:

<?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);
}

...

}
?>

关于php - CakePHP 2.0 - 2.1,从 Controller 查询不同的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com