如何在Yii中获取所有相关的模型ID?

时间:2013-04-02 11:08:01

标签: php yii

假设$ model有一些项目(一对多关系),所以在Yii $ model-> items中返回一个项目模型数组。
如何获得相关项目的ID数组。这意味着返回数组的每个元素都是一个整数。

3 个答案:

答案 0 :(得分:3)

你应该为此编写自己的函数,例如:

public function getItemsIDs()
{
  $ids = array();
  foreach($this->items as $item)
    $ids[] = $item->id;
  return $ids;
}

您必须致电$model->itemsIDs

编辑:正如 darkheir 在评论中所说,你应该考虑使用DAO

答案 1 :(得分:2)

以下是从Model:

运行的直接查询示例
$this->getDbConnection()->createCommand("SELECT id FROM items WHERE model_id = :modelId")->bindParam(":modelId", $model->id, PDO::PARAM_STR)->queryColumn();

在结果中,您将获得数值Array(),其中包含表中的ID作为值。

答案 2 :(得分:0)

另一种变体。

Yii::app()->db->createCommand("SELECT id FROM items WHERE model_id=".$model->id)->queryColumn()

这将从表中获取所有ID作为数组