0

如果我有一个用户表和一个电子邮件表,我是否必须定义一个email.php模型来定义这个关系User.php

static $has_many = array(
      array('emails')
    );

另外,如果我有一个像电子邮件这样的对象,它可以与可以拥有该对象的其他对象具有外键关系,我如何定义电子邮件可以belong_to usersAND belong_to domains

4

2 回答 2

0
  1. 如果模型使用 phpAR 默认命名约定,则不必定义模型。尽管您可能想要,但如果您使用关联。如果您不定义Email模型及其与 的belongs_to关系User,您将无法访问Userthrough Email(反之亦然,Email通过User

  2. 多个belongs_to是通过数组实现的:

    class Email extends ActiveRecord\Model {
        static $belongs_to = array(
            array('user'),
            array('domain')
        );
    }
    

请注意,belongs_to您必须使用单数形式,而不是复数形式

于 2013-02-04T11:03:49.723 回答
-1

你在使用框架吗?

如果不是,您应该为每个模型使用静态吸气剂。

您应该在其数据字段上使用延迟加载。

所以如果你写 email->getUser() 你会得到一个用户对象,它只知道它的 id 并且可以在需要时从数据库中延迟加载数据。

始终要知道自己在做什么(有时最好使用连接来避免 N 次查询(在使用循环或获取数据时会抛出超过 2 个表))。

我建议您不要编写自己的 ORM 或 Active Records 实现,除非您想学习一些东西。

更好地为您的项目使用理论 2 或等效框架。

于 2013-02-03T19:41:06.770 回答