私はphp.activerecordを使用しており、2 つのテーブルをリンクしようとしています。
と がcontacts
ありcontactCompanyLinks
ます。各連絡先には、リンク テーブルに 1 つ以上の行を含めることができます。テーブル内のフィールド名は適切な規則に従っていませんが、同じテーブルを使用している別のアプリを壊す可能性があるため、変更できません。
の主キーは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
またはContactCompanyLink
またはのような他のプロパティを試した場合ContactCompanyLinks
、「未定義のプロパティ」エラーが発生しました。
var_dump(Contact::find(1234)
うまく動作します。テーブルのフィールドが表示されcontacts
ます。
2 つのテーブルをリンクする方法を php.activerecord に伝えようとしたときに、仮定をやめて私の話を聞くようにするにはどうすればよいですか?