【发布时间】:2012-03-15 20:36:41
【问题描述】:
我正在使用 PHP-ActiveRecord ORM 开发一个私人消息系统。我有名为“用户”和“消息”的模型,名为“用户”和“消息”的 MySQL 表,在消息表中,我有名为“发送者 ID”和“接收者 ID”的字段。但是,我不知道如何正确地将发件人和收件人与用户模型相关联。
这是我目前在用户模型中所拥有的:
static $has_many = array(
array('messages'),
array('recipients', 'foreign_key' => 'recipient_id', 'class_name' => 'Message'),
array('senders', 'foreign_key' => 'sender_id', 'class_name' => 'Message'),
);
这就是我目前在消息模型中所拥有的:
static $belongs_to = array(
array('sender', 'class_name' => 'User'),
array('recipient', 'class_name' => 'User'),
);
但是,当我运行 $message->recipient->first_name 之类的代码时,它并没有像我想要的那样正确地从 User 模型中提取名字。我不确定我做错了什么。
通常,我只使用标准命名约定。但是,对于这个例子,我们必须有 sender_id 和 recipient_id,它们都是同一类型,所以我不能像我一直在做的那样只使用标准命名约定。
任何帮助将不胜感激。我正在使用 PHP-ActiveRecord ORM。我认为 Rails 版本使用更广泛,但我的理解是它们的工作方式相同,只是语法不同。
【问题讨论】:
-
不用担心...对于未来,您不必接受对您提出的每一个问题的回答,只需回答那些为您的问题提供适当解决方案的问题
标签: php codeigniter activerecord