0

我有这样的数据:

表反馈,带有实体:id_feedback (primary_key) , id_user (foreign key), feedback
表用户,具有实体:id_user (primary_key), user_name

用户有很多反馈,反馈只有一个用户。

我在app/controller/feedback.

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

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

4

2 回答 2

2

你应该简单地尝试:

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();
}

阅读更多 :

于 2015-09-02T08:02:18.643 回答
1

soju 是对的,如果您只想选择某些列(因此并非模型反馈和用户的所有列都返回),您可以将选择修改为类似这样

$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();
于 2015-09-02T08:12:38.380 回答