Kohana ORM エイリアシングと「非オブジェクトのプロパティを取得しようとしている」

StackOverflow https://stackoverflow.com/questions/2813722

  •  26-09-2019
  •  | 
  •  

質問

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

  • チーム:
    • ID
    • 名前
  • 一致します:
    • ID
    • チーム1_id
    • チーム2_id

次のように定義しました ORM 私の中のモデル コハナ v2.3.4 アプリケーション:

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 内

役に立ちましたか?

解決

を解決しよう!のKohanaのコミュニティが私に与えた答え

プロパティ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   今2列を持っています、   blog_posts.author_idと   blog_posts.editor_id、両方だろう   users.idに存在する値を持っています。

これは、私はその行を見逃しているようだ:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top