Php 我需要为所有关联定义模型吗?
如果我有一个用户表和一个电子邮件表,我是否必须定义一个Php 我需要为所有关联定义模型吗?,php,phpactiverecord,Php,Phpactiverecord,如果我有一个用户表和一个电子邮件表,我是否必须定义一个email.php模型来定义User.php中的这种关系: static $has_many = array( array('emails') ); 另外,如果我有一个像电子邮件这样的对象,它可以与拥有该对象的其他对象具有外键关系,那么我如何定义电子邮件可以属于用户和属于域?您使用的是框架吗 如果不是,则应该为每个模型使用静态getter 您应该在其数据字段上使用lazyloading 因此,如果您编写email->ge
email.php
模型来定义User.php
中的这种关系:
static $has_many = array(
array('emails')
);
另外,如果我有一个像电子邮件这样的对象,它可以与拥有该对象的其他对象具有外键关系,那么我如何定义电子邮件可以
属于用户和属于域?您使用的是框架吗
如果不是,则应该为每个模型使用静态getter
您应该在其数据字段上使用lazyloading
因此,如果您编写email->getUser(),您将获得一个用户对象,该对象只知道它的id,并且可以在需要时从数据库延迟加载数据
要知道自己在做什么(有时最好使用连接来避免N个查询(在处理循环或获取超过2个表的数据时))
我建议您不要编写自己的ORM或活动记录实现,除非您想了解一些东西
最好在项目中使用doctrine2或等效的框架
如果使用phpAR默认命名约定,则不必定义模型。
尽管您可能希望,但如果您使用关联。如果您没有定义电子邮件
模型,并且它的属于用户
关系,您将无法通过电子邮件
访问用户
(仅限通过用户
访问电子邮件)
通过数组实现多个所属的:
class Email extends ActiveRecord\Model {
static $belongs_to = array(
array('user'),
array('domain')
);
}
请注意,对于属于
,必须使用单数形式,而不是复数形式