2017-09-04 17 views
0

他のエンティティと関連付けることができる単純な読み取り専用エンティティを持つことは可能ですが、そのデータはテキスト(YAML)ファイルに保存されますか?Symfony - YAMLから水和された読み取り専用エンティティ

私はproductエンティティを持っていて、各商品にカテゴリを設定したいとします。しかし今のところ、カテゴリはほとんどなく(編集や追加は不要です)、DB内に独自のテーブルを持つ完全な教義のエンティティを作成する必要はありません。

だから私は非常に単純なエンティティの作成:

0: Cheese 
1: Meat 
2: Dairy Products 
.... 

その後、私はしたいと思います。そうのよう

class ProductCategory 
{ 

    private $id; 
    private $name; 

    public function getId() 
    { 
     return $this->id; 
    } 

    public function getName() 
    { 
     return $this->name; 
    } 

} 

今私は、データが格納されているシンプルなYAMLファイルを作成したいと思いますがManyToOne関係をproductエンティティからProductCategoryエンティティに設定します。

これは可能ですか? カテゴリを「照会する」方法は? (特定の文字で始まるすべてのカテゴリをリストしたいとします)

「なぜあなたは聞いていますか? さて、私が言ったように、カテゴリはほとんどなくても、もっと多く追加したいと思うかもしれませんし、CRUDエディタを持っていても、それを完全な教義のエンティティに簡単に変換できます。

またはこれにアプローチする方法に関する他の提案はありますか?

答えて

2

あなたがアリスと呼ばれるものです探しているものを提供するライブラリすでにあり:

あなたが作成することができますこの方法では、大量のランダムなテストデータを一括して処理できますいつものようにDoctrineと一緒に。

これを手動で実行したい場合は、エンティティを接続する際の問題を解決するのに苦労します。あなたの最善の策は、IDをキーとして使用してすべての配列を保持することですが、それでもエンティティを接続するための多くのグルーコードを書くことになります。

+0

これは多くの労力とオーバーヘッドのようです。私はもっ​​と簡単な方法があると思った。私は標準的な教義の実体で行くと思います。 あなたの答えをありがとう! – minychillo

+0

もう一つの可能​​性は、Doctrine FixturesBundleを使うことです:https://github.com/doctrine/DoctrineFixturesBundleエンティティを設定する必要がありますが、すべての設定を自分で行うよりもずっと便利です。いくつかの例がドキュメントにあります:https://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html – dbrumann

+0

このフィクスチャのアイデアを理解しているかどうかわかりません...まず、フィクスチャはテスト専用です、 右 ?次に、フィクスチャにはDB内のテーブルが必要なので、ここでは何も得られません。または私は何かを逃していますか? – minychillo

関連する問題