在控制器上获取与 yii2 相关的数据

get data related with yii2 on controller

我有这样的数据:

Table 反馈,实体:id_feedback (primary_key) , id_user (foreign key), feedback.
Table 用户,实体:id_user (primary_key), user_name.

用户反馈多条,反馈1条。

我在 app/controller/feedback 中创建了 json。

public function actionGetReplayFeedback($ID_KOMENTAR)
{
    $replay = Feedback::find()->where('REPLAY_TO_ID = '. $ID_KOMENTAR)->all();
    echo Json::encode($replay);
}

我得到了 json 但我没有得到 username。我怎样才能得到 username?

你应该试试:

public function actionGetReplayFeedback($ID_KOMENTAR)
{
    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    return Feedback::find()->with(['user'])->where(['REPLAY_TO_ID'=>$ID_KOMENTAR])->asArray()->all();
}

阅读更多:

soju 是正确的,如果您只想 select 某些列(因此并非模型反馈和用户的所有列都被返回),您可以将 select 修改为这样的内容

$items = \app\models\Feedback::find()
->with(['user' => function($q) {
    $q->select(['id_user', 'username']);
}])
->select(['id_feedback', 'feedback'])
->where(['REPLAY_TO_ID'=>$ID_KOMENTAR])
->asArray()
->all();