响应中的YII2行为属性

时间:2015-05-19 17:32:50

标签: response yii2 behavior

我在 components / testBehavior.php 中定义了一个行为:

class testBehavior extends Behavior
{
    protected $testField;

    public function getTestField()
    {
        return $this->testField;
    }

    public function setTestField($value)
    {
        $this->testField = $value;
    }
}

我需要使用额外的 testField 属性来扩展模型,该属性的值与内部ID相关:

public static function getTestVehicles()
{
    $data = self::find()->all();
    foreach ($data as $k => $v) {
        $v->testField = $v->Id + 100;
    }

    return $data;
}

我需要使用JSON格式的新属性输出扩展数据:

public function actionJson()
{
    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

    return Model::getTestVehicles();
}

但我发现输出中没有 testField 属性。如何在FORMAT_JSON中将行为扩展属性添加到响应中?

1 个答案:

答案 0 :(得分:1)

我的猜测:受保护的成员$testField会导致问题。将其公开或在模型类中使用JsonSerializable