Yii2 yii\data\ArrayDataProvider中的目标对象

Yii2 yii\data\ArrayDataProvider中的目标对象,yii2,Yii2,我使用的是LDAP扩展,它查询Active Directory服务器并将结果作为Yii2 ArrayDataProvider返回 $attributes = Yii::$app->ldap->searchUserByLogin($this->username, ['mail', 'sn', 'givenname']); 返回信息的vardump如下: yii\data\ArrayDataProvider#1 ( [key] => null [allMod

我使用的是LDAP扩展,它查询Active Directory服务器并将结果作为Yii2 ArrayDataProvider返回

$attributes = Yii::$app->ldap->searchUserByLogin($this->username, ['mail', 'sn', 'givenname']);
返回信息的vardump如下:

yii\data\ArrayDataProvider#1
(
    [key] => null
    [allModels] => [
        0 => [
            'mail' => ‘test@test.com
            'sn' => ‘Surname’
            'givenname' => ‘FirstName’
            'middlename' => null
        ]
    ]
    [modelClass] => null
    [id] => null
    [yii\data\BaseDataProvider:_sort] => null
    [yii\data\BaseDataProvider:_pagination] => null
    [yii\data\BaseDataProvider:_keys] => null
    [yii\data\BaseDataProvider:_models] => null
    [yii\data\BaseDataProvider:_totalCount] => null
    [yii\base\Component:_events] => []
    [yii\base\Component:_eventWildcards] => []
    [yii\base\Component:_behaviors] => null
据我所知,我可以将数据视为对象并像其他人一样访问它们

$attributes->mail
但是我得到一个错误,没有找到对象。然后,如果我试着像对待传统阵列一样对待它,我会得到

Cannot use object of type yii\data\ArrayDataProvider as array yii2
非常感谢您的帮助


谢谢

能否显示您的
视图/xxx.html
代码,
ArrayDataProvider
提供一个对象,我想知道您如何使用
ArrayDataProvider

在您的代码中似乎有可能使用了此代码

$attributes['allModels'][0]['mail']
下面应该是这样的

$results = $attributes->getModels();

ArrayDataProvider提供了一个数组。我在控制器中使用它只是为了从LDAP服务器创建/更新用户信息。当我尝试像常规数组一样访问yii2时,出现错误
无法将yii\data\ArrayDataProvider类型的对象用作数组yii2
$用户->用户名=$this->用户名$用户->电子邮件=$attributes['allModels'][0]['mail']$用户->设置密码($this->password)$用户->generateAuthKey()$用户->保存()能否显示
var_dump($results=$attributes->getModels())?我现在可以得到它。
$results=$attributes->getModels()然后
$user->email=$results[0]['mail']非常感谢!