0

データベースには次のテーブルがあります。

  • チーム:
    • id
    • 名前
  • 一致:
    • id
    • team1_id
    • team2_id

Kohanav2.3.4アプリケーションで次のORMモデルを定義しました。

class Match_Model extends ORM {
  protected $belongs_to = array('team1_id' => 'team', 'team2_id' => 'team');
}

class Team_Model extends ORM {
  protected $has_many = array('matches');
}

コントローラ内の次のコード:

$match = ORM::factory('match',1);
echo $match->team1_id->name; /* <-- */

でマークされたリンクに次のエラーをスローしています/* <--- */

非オブジェクトのプロパティを取得しようとしています

フレームワークは、Match_Modelインスタンスへの参照ではなく、外部キーの値を生成します(has_manyプロパティとbelongs_toプロパティを指定します)。

私は何かが足りないのですか?

注:念のため'match' => 'matches'、application / config/inflector.phpに不規則な複数形を追加しました

4

1 に答える 1

0

解決しました!コハナコミュニティは私に答えをくれました:

$belongs_toプロパティの正しい値は次のとおりです。

class Match_Model extends ORM {
  protected $belongs_to = array('team1' => 'team', 'team2' => 'team');
}

ドキュメントには次のように記載されています。

class Blog_Post_Model extends ORM { 
    protected $belongs_to = array('author' => 'user', 'editor' => 'user'); 
}

blog_postsデータベーステーブルには、blog_posts.author_idとblog_posts.editor_idの2つの列があり、どちらもusers.idに存在する値があります。

私はその行を逃したようです、:)

于 2010-05-11T22:03:00.507 に答える