gpt4 book ai didi

mysql - cakephp 消息系统方案/模型/ Controller 最佳实践?

转载 作者:行者123 更新时间:2023-11-30 23:32:04 24 4
gpt4 key购买 nike

我正在尝试为我的用户实现一个简单的消息传递系统。

我不是 habtm 专家,因此我们将不胜感激!

这就是我目前所得到的,请提出任何建议!! (cake1.3)

CREATE TABLE IF NOT EXISTS `app_messages` (
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`from_user_id` int(8) unsigned DEFAULT NULL,
`title` varchar(255) DEFAULT NULL,
`body` text,
`created` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `app_messages_users` (
`id` int(8) unsigned NOT NULL,
`message_id` int(8) unsigned NOT NULL,
`to_user_id` int(8) unsigned NOT NULL,
`read` tinyint(1) DEFAULT '0',
`replied` tinyint(1) NOT NULL DEFAULT '0',
`trash` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
);

Message.php
var $hasAndBelongsToMany = array(
'User' =>
array(
'className' => 'User',
'joinTable' => 'messages_users',
'foreignKey' => 'message_id',
'associationForeignKey' => 'to_user_id',
'unique' => true
)
);


User.php
var $hasMany = array(
'Message' => array(
'className' => 'message',
'foreignKey' => 'from_user_id',
'dependent' => true
)

那么现在,我的问题是,我这样做是否正确?

如何创建一个 SEND MESSAGE 函数,以将正确的值插入到两个表中?我对 HABTM 关系一无所知,但我正在努力学习。花了几个小时在网上阅读它,但仍然需要问我是否走对了路。

感谢您的宝贵时间!-汤姆

最佳答案

鉴于您的连接表具有其他字段(readrepliedtrash),您不应使用 HABTM 关系。如果这样做,您将无法从您的应用程序访问它们。因此,您应该通过连接表的新模型配置两个 hasMany 关联。解释的很好here in the CookBook .

所以你最终会得到这样的东西:

// User.php
class User extends AppModel {
public $hasMany = array(
'MessageUser' /* you can call this 'SentMessage' or something that makes more sense */
);
}

// Message.php

class Message extends AppModel {
public $hasMany = array(
'MessageUser'
);
}

// MessageUser.php

class MessageUser extends AppModel {
public $belongsTo = array(
'User', 'Message'
);
}

关于mysql - cakephp 消息系统方案/模型/ Controller 最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10080272/

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