私は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 に伝えようとしたときに、仮定をやめて私の話を聞くようにするにはどうすればよいですか?