一个产品的两个父母yii2

时间:2018-03-15 13:39:08

标签: database controller yii2 parent

现在我有两张牌"Category""Product"。 我在'category_id'"Product" 'id'Category中等于$dataProvider = new ActiveDataProvider([ 'query' => $query = Product::find()->where(['category_id' => $cats->id]), 'sort'=>array( 'defaultOrder'=>['id' => SORT_ASC], ), 'pagination' => [ 'pageSize' => 9, ], ]); ,所以现在在我看来它显示了该类别的所有产品。但现在我需要一种产品分为几类。

在控制器中,我使用以下数据提供程序:

org.hamcrest.Matchers.hasProperty

有关如何实现此功能的任何建议?

2 个答案:

答案 0 :(得分:0)

试试这个:

$dataProvider = new ActiveDataProvider([
    'query' => $query = Product::find()->where(['id' => $product_id]),
    'sort'=>array(
        'defaultOrder'=>['id' => SORT_ASC],
    ),
    'pagination' => [
        'pageSize' => 9,
    ],
]);

OR

$dataProvider = new ActiveDataProvider([
    'query' => $query = Product::find()->where(['id' => $product_id])->groupBy(['cats->id']),
    'sort'=>array(
        'defaultOrder'=>['id' => SORT_ASC],
    ),
    'pagination' => [
        'pageSize' => 9,
    ],
]);

答案 1 :(得分:0)

如果我不理解你对pricipio的数据结构错误

从1到N.

 Categories -> Products

现在你希望它来自N to N 一个包含许多产品的类别和一个包含多个类别的产品。

所以我希望你创建另一个名为Product_Categy的表,你可以在那里保存2个表的主键,你必须能够从N to N建立关系,你会有一个决赛像这样的计划

Categories (id, ...) -> 
Categria_Product (id, id_categoria, id_producto, ...) <- Product (id, ..)