如何从Yii2 ActiveQuery数组中获取价值

时间:2015-09-28 10:41:35

标签: php yii2

我有一个包含字段的表

id, vehicle_id, vehicle_rating_type, vehicle_rating, rating_time

我想获得基于vehicle_id的值,所以我解雇了查询

$id = Yii::$app->getRequest()->getQueryParam('id');
$data = VehicleRating::find()->where(['vehicle_id' => $id]);

现在,当我使用$data函数在视图文件中打印print_r数组时,我得到以下结果。

yii\db\ActiveQuery Object ( 
    [sql] => 
    [on] => 
    [joinWith] => 
    [select] => 
    [selectOption] => 
    [distinct] => 
    [from] => 
    [groupBy] => 
    [join] => 
    [having] => 
    [union] => 
    [params] => Array ( ) 
    [_events:yii\base\Component:private] => Array ( ) 
    [_behaviors:yii\base\Component:private] => Array ( ) 
    [where] => Array ( 
        [vehicle_id] => 1 
    ) 
    [limit] => 
    [offset] => 
    [orderBy] => 
    [indexBy] => 
    [modelClass] => backend\models\VehicleRating 
    [with] => 
    [asArray] => 
    [multiple] => 
    [primaryModel] => 
    [link] => 
    [via] => 
    [inverseOf] => 
)

如何从此数组中检索值以显示在视图文件中?我想说vehicle_idvehicle_rating。如何打印?

3 个答案:

答案 0 :(得分:1)

您应该只是执行查询,例如:

$rating = VehicleRating::find()->where(['vehicle_id' => $id])->one();
echo $rating->vehicle_rating;

或者如果你想要数组而不是对象:

$rating = VehicleRating::find()->where(['vehicle_id' => $id])->asArray()->one();
echo $rating['vehicle_rating'];

了解详情:http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#querying-data

答案 1 :(得分:0)

使用query params

$vehicleRatingQuery = VehicleRating::find()->where('vehicle_id = :vehicleId', [
    ':vehicleId' => $id
]);

$vehicleRatingQueryParams = $vehicleRatingQuery->params;

答案 2 :(得分:0)

找到我添加的解决方案 - >在查询结束时使用one()并且它可以正常工作

$data = VehicleRating::find()->where(['vehicle_id' => $id])->one();