在控制器上获取与 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();
我有这样的数据:
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();