0

メンバーとトピックの 2 つのテーブルがあります。2 つのテーブルは、次のように 1 対多の関係で相互に関連付けられています。

class Topic extends Eloquent 
{
     public function member()
     {
           return $this->belongs_to('Member');
     }
 }

class Member extends Eloquent 
{
     public function topics() 
     {
         return $this->has_many('Topic');
     }
}

次のUnhandled Exception error - Trying to get property of non-objectようなことをしようとすると、次のようになります。

$members = Topic::find(1)->member->get()->email;

どこが間違っていますか?DBのデータ整合性には問題ないようです。

4

2 に答える 2

0

Topic モデルの関数メンバーは、配列を返します。

外部リレーションにアクセスする正しい方法は次のようになります。

$members = Topic::find(1)->member[0]->メール

于 2013-04-28T21:21:48.580 に答える
0

外部キー フィールドの標準的な命名はありますか? メンバー テーブルのフィールド名は topic_id である必要があります。そうでない場合は、member() を次のように定義します。

return $this->belongs_to("Member","fkfieldname");

(また、Laravel4 を使用している場合は、begs_to() の代わりに belongsTo() を使用することをお勧めします)。

于 2013-01-24T18:24:15.097 に答える