yii \ data \ ArrayDataProvider中的目标对象

时间:2018-12-07 06:22:25

标签: yii2

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

$attributes = Yii::$app->ldap->searchUserByLogin($this->username, ['mail', 'sn', 'givenname']);

返回的信息的摘要如下;

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

我们将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

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

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

$attributes['allModels'][0]['mail']

应如下所示

$results = $attributes->getModels();