は、私は、エンティティProduct
とエンティティSubcategory
ありますDoctrine2の別のEntitiyのフィールド値に基づいてエンティティを取得する方法は?
Subcategory.phpを
namespace Project\Entities;
/**
* Subcategory
* @Entity
* @Table(name="subcategories")
*
*/
class Subcategory {
/**
*
* @Id
* @GeneratedValue
* @Column(type="integer")
* @var integer $id
*/
public $id;
/**
* @Column(type="string")
* @var string $name
*/
public $name;
}
Product.php
namespace Project\Entities;
/**
*
* Product
* @Entity
* @Table(name="products")
*/
class Product {
/**
*
* @Id
* @GeneratedValue
* @Column(type="integer",length=16)
* @var integer $id
*/
public $id;
/**
*
* @Column(type="integer",length=3)
* @var integer $id_subcat
*/
public $id_subcat;
/**
*
* @Column(type="string")
* @var integer $name
*/
public $name;
/**
*
* @Column(type="string")
* @var integer $available
*/
public $available;
}
私が取得したいと思いProducts
available
フィールドを持っているすべてのSubcategories
1と等しい。 Ergo。利用可能な製品のみを持つサブカテゴリを取得します。
私はSQL
のクエリを書く方法を知っていますが、これを達成する方法がわかりませんDQL
。
注釈を追加する必要がありますか?関連マッピングについて
このレスポンス、特に最後のセクションで詳しく説明しています。 – cantera
テーブル間の関係についてありがとう、本当に私はこのクエリで 'サブカテゴリ'を得ることを望んでいました。私は何を意味するかを正確に特定するために質問を明確にしました。 – pixel
在庫状況を確認するために商品テーブルでどの項目を使用しているのか分かりません。 '$ dql ="プロジェクト\エンティティ\サブカテゴリを選択します。SC JOIN sc.products p WHERE p.availability = 1 ORDER BY p.name ASC " –