2017-09-08 2 views
1

i alle devlopers Tabellendaten wählen möchten, mit nur „username“ Spalte in Benutzertabelleyii2 wählen Spalte aus Beziehungstabelle Probleme

ich dies schreibe, aber ich bekomme Fehler

$model = Developers::find()->select('*')->with(['users' => function($q){ 
      $q->select('username'); 
     }])->asArray()->all(); 

meine Entwickler „developer_id“ Spalte Beziehung mit id-Spalte Benutzertabelle so in Developers Modell schrieb i

public function getUsers() 
    { 
     return $this->hasOne(User::className(), ['id' => 'developer_id']); 
    } 

Fehler ist

PHP Notice 'yii\base\ErrorException' with message 'Undefined index: id' 

in /srv/http/adone/vendor/yiisoft/yii2/db/ActiveRelationTrait.php:501 

Stack trace: 
#0 /srv/http/adone/vendor/yiisoft/yii2/db/ActiveRelationTrait.php(501): yii\base\ErrorHandler->handleError(8, 'Undefined index...', '/srv/http/adone...', 501, Array) 
#1 /srv/http/adone/vendor/yiisoft/yii2/db/ActiveRelationTrait.php(381): yii\db\ActiveQuery->getModelKey(Array, Array) 
#2 /srv/http/adone/vendor/yiisoft/yii2/db/ActiveRelationTrait.php(245): yii\db\ActiveQuery->buildBuckets(Array, Array) 
#3 /srv/http/adone/vendor/yiisoft/yii2/db/ActiveQueryTrait.php(174): yii\db\ActiveQuery->populateRelation('users', Array) 
#4 /srv/http/adone/vendor/yiisoft/yii2/db/ActiveQuery.php(214): yii\db\ActiveQuery->findWith(Array, Array) 
#5 /srv/http/adone/vendor/yiisoft/yii2/db/Query.php(214): yii\db\ActiveQuery->populate(Array) 
#6 /srv/http/adone/vendor/yiisoft/yii2/db/ActiveQuery.php(135): yii\db\Query->all(NULL) 
#7 /srv/http/adone/controllers/admin/SiteAdminController.php(30): yii\db\ActiveQuery->all() 
#8 [internal function]: app\controllers\admin\SiteAdminController->actionViewDevelopers() 
#9 /srv/http/adone/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array) 
#10 /srv/http/adone/vendor/yiisoft/yii2/base/Controller.php(156): yii\base\InlineAction->runWithParams(Array) 
#11 /srv/http/adone/vendor/yiisoft/yii2/base/Module.php(523): yii\base\Controller->runAction('view-developers', Array) 
#12 /srv/http/adone/vendor/yiisoft/yii2/web/Application.php(102): yii\base\Module->runAction('admin/site-admi...', Array) 
#13 /srv/http/adone/vendor/yiisoft/yii2/base/Application.php(380): yii\web\Application->handleRequest(Object(yii\web\Request)) 
#14 /srv/http/adone/web/index.php(12): yii\base\Application->run() 
#15 {main} 

Warum ist das passiert?

Antwort

1

Versuchen Sie folgendes:

Developers::find()->select('developers.*, user.username')->joinWith(['users'])->asArray()->all() 
+0

thankyou für mich seine Arbeits aber kann man sagen, warum mein Code nicht richtig funktioniert? – moh

+0

Ich kann nicht sicher sagen, aber es scheint mir, dass Sie die Methode 'with()' nicht korrekt verwendet haben. Bitte markieren Sie die Frage als beantwortet, wenn Sie das Problem gelöst haben. – vityapro

Verwandte Themen