当用户请求信息时,在模型中的Yii2中隐藏密码

时间:2014-12-22 08:48:45

标签: yii2

https://github.com/yiisoft/yii2/blob/master/docs/guide/structure-models.md#fields-

我读过这篇文章却无法理解它的工作原理。我在我的代码中写了它,但没有运气。 在像这样的模型类字段中:

public function fields() {
    $fields = parent::fields();

    // remove fields that contain sensitive information
    unset($fields['password']);

    return $fields;
}

例如,我想要返回有关一个用户的信息:

$account = Account::findOne($id);
return Json::encode(['error' => 0, 'message' => '', 'data' => $account]); 

当我想要回复一堆用户时:

$accounts = Account::find()->where(['companyId' => $companyId])->orderBy('username')->asArray()->all();
return Json::encode(['error' => 0, 'message' => 'Users in company', 'data' => $accounts]);

那么如何隐藏字段?

2 个答案:

答案 0 :(得分:2)

您的代码是正确的,它会隐藏密码字段

如果你想要其他方式,你可以选择你想要显示的字段:

$accounts = Account::find()
    ->select(['field1','field2'])
    ->where(['companyId' => $companyId])->orderBy('username')
    ->asArray()
    ->all();
return Json::encode(['error' => 0, 'message' => 'Users in company', 'data' => $accounts]);

答案 1 :(得分:0)

非常简单:

试试吧 $account->fields();