0

ng-admin を使用して管理インターフェイスを構築しようとしています。フィールドを使用して、reference1 つのメイン エンティティ (投稿など) を、多対 1 の関係 (1 つの投稿に多くのコメントがある) を持つ別のエンティティ (コメント) にリンクしています。

listView()各投稿の最後のコメントを表示する必要がありますが、ng-admin の関係ドキュメントからわかるように API では外部キーがメイン エンティティではなくセカンダリ エンティティにあるため、表示できません。

言い換えれば、私はpost_idComment エンティティにいますがlistView()、投稿を行っているため、どのコメントにもアクセスできません。

この問題の回避策はありますか? 参照キー自体を含まないエンティティから外部エンティティを参照できますか?

例をより明確にするために、単純な JSON を追加します。

// Post
{ 
  id: 1,
  title: 'post n1',
  body: 'bla bla bla very cool'
}

// Comment
{ 
  id: 1,
  body: 'yo bro'
  post_id: 1
}

ありがとうございました

4

1 に答える 1

1

個人的な経験と参照を見ると、探しているものと同様の結果が得られるのは、referenced_list( http://ng-admin-book.marmelab.com/doc/reference/Field. html#-referenced-list-field-type )。最初の文はあなたのケースと正確に一致します:

「referenced_list タイプは、外部キーが別のエンティティにある 1 対多の関係をマップします。」

それを使用すると、次のようになります。

nga.field('comments', 'referenced_list')
    .targetEntity(comments)
    .targetReferenceField('post_id')

これにより、その投稿に関連するコメントのリストが取得されます。ただし、これはリストを返すため、一緒に使用することはlistViewできません (リストにリストをネストすることはできません)。

reference残念ながら、参照はオブジェクトのキーの1つを使用して検索するため、同様の結果を得るために使用する方法はないと思います。

于 2016-02-23T23:45:58.870 に答える