Yii2 yii\data\ArrayDataProvider中的目标对象
我使用的是LDAP扩展,它查询Active Directory服务器并将结果作为Yii2 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
$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']代码>非常感谢!