私は単純なはずですが、PHP ActiveRecordでは不可能な何かを達成しようとしています。PHP ActiveRecordのModelインスタンスとして属性値を取得する方法は?
私が作成した簡単な例では、PersonとExchangeという2つのモデルと、people(id, name)
とexchange(id, user_from_id, user_to_id, comment)
という2つのモデルがあります。 exchange.user_from_id
およびexchange.user_to_id
には、people.id
を参照する外部キー制約があります。
$exchange = Exchange::first();
echo $exchange->user_from_id;
echo $exchange->user_from_id->name;
私が最初echo
は失敗を期待する2つ目は、成功するために:
は、だから私は、次のコードを実行したとき。代わりに、最初のものが成功し、exchange.user_from_id
という文字の値を出力し、明らかに2番目のものは「非オブジェクトのプロパティを取得しようとしています」という警告を生成します。
結果は同じでもExchangeに以下を追加することなく、次のとおりです。
static $belongs_to = array(
array('user_from_id', 'class_name' => 'Person'),
array('user_to_id', 'class_name' => 'Person')
);
私は$exchange->user_from_id
は、Personクラスのインスタンスを返すようにそれを作るために私のコードで何を変更する必要がありますか?