我正在使用php.activerecord,并且正在尝试链接两个表。
我有contacts
和contactCompanyLinks
。每个联系人可以在链接表中包含一行或多行。表中的字段名称不遵循任何合理的约定,但我无法更改它,因为它会破坏使用同一个表的另一个应用程序。
的主键contacts
被调用contactID
,外键contactCompanyLinks
被调用inspectorID
。
php.activerecord 做了太多的假设,我不知道如何让它将我的表链接在一起。
这是我的模型:
Contact.php
:
<?php
class Contact extends ActiveRecord\Model {
static $primary_key = 'contactID';
static $has_many = array(
array(
'contactCompanyLinks',
'class_name' => 'ContactCompanyLink',
'foreign_key' => 'inspectorID'
)
);
}
ContactCompanyLink.php
:
<?php
class ContactCompanyLink extends ActiveRecord\Model {
static $table_name = 'contactCompanyLinks';
static $belongs_to = array(
array('contact')
);
}
这看起来不错,但是当我试图排成一行时,它不起作用。我做了以下事情:
<?php
var_dump(Contact::find(1234)->contactcompanylinks);
我打印到屏幕上的只是NULL
!如果我尝试了其他属性,如contactcompanylink
orContactCompanyLink
或ContactCompanyLinks
,我会收到“未定义属性”错误。
var_dump(Contact::find(1234)
工作得很好。它向我显示了contacts
表格中的字段。
当我试图告诉它如何将 2 个表链接在一起时,如何告诉 php.activerecord 停止假设事情并听我说?