我在使用关系获取数据时遇到问题。以下是详细信息:
我有两张桌子。首先是item_master,其次是库存表。由于两者都有 MANY_MANY 关系,所以我们有另一个名为inventory_items的表,其中包含两个字段(item_id、inventory_id)。
以下是 ItemMaster 模型中的关系详细信息:
'inventories' => array( self::MANY_MANY, 'Inventories', 'inventory_items(item_id, inventory_id)' ), 'inventoryItems'=>array(self::HAS_MANY,'InventoryItems','item_id'),
我只需要获取特定库存的项目。为此,我正在实施以下过滤条件:
$criteria=new CDbCriteria; $inventory_condition['condition']="inventoryItems.inventory_id=:inventoryID"; $inventory_condition['params'] = array( ':inventoryID' => $filter['inventory_id'] ); $inventory_condition['joinType']='INNER JOIN'; $criteria->with = array("inventoryItems"=>$inventory_condition); $items=new CActiveDataProvider('ItemMaster',array('criteria'=>$criteria));
问题:
上面的代码将所有具有所需库存的物品归还给我。如果一个项目不属于该库存,它仍然会返回该项目但没有库存。我只需要那些属于特定库存的物品应该返回。