我正在使用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
我们将不胜感激。
谢谢
答案 0 :(得分:1)
您能否显示您的view/xxx.html
代码,ArrayDataProvider
提供一个对象,我想知道您如何使用ArrayDataProvider
?
您的代码中似乎有可能使用了此代码
$attributes['allModels'][0]['mail']
应如下所示
$results = $attributes->getModels();