Wenn Tabellen nicht verbunden sind, können einzelne Felder überprüft werden.
1 | $user ->find()->select([ 'userid' , 'username' ])->asArray()->all();
|
Nach dem Login kopieren
Nach dem Login kopieren
Dann ist SQL auch normal
1 | select userid, username from ...
|
Nach dem Login kopieren
Nach dem Login kopieren
Aber beim Zusammenführen von Tabellen. . .
1 2 3 4 5 6 7 8 9 10 11 | $user ->find()
->joinWith([
'account' => function ( $object ) {
$object ->select([ 'account_name' , 'account_level' , 'account_status' ]);
},
'bank' => function ( $object ) {
$object ->select([ 'bank_name' , 'bank_province' , 'bank_branch' , 'bank_account' ]);
}
])
->asArray()
->all();
|
Nach dem Login kopieren
Nach dem Login kopieren
Ich habe mir die SQL-Abfrage angesehen und es stellte sich heraus, dass
Was ist das? Oder stimmt etwas mit der von mir verwendeten Methode nicht? ?
Antwortinhalt:
Wenn Tabellen nicht verbunden sind, können einzelne Felder überprüft werden.
1 | $user ->find()->select([ 'userid' , 'username' ])->asArray()->all();
|
Nach dem Login kopieren
Nach dem Login kopieren
Dann ist SQL auch normal
1 | select userid, username from ...
|
Nach dem Login kopieren
Nach dem Login kopieren
Aber beim Zusammenführen von Tabellen. . .
1 2 3 4 5 6 7 8 9 10 11 | $user ->find()
->joinWith([
'account' => function ( $object ) {
$object ->select([ 'account_name' , 'account_level' , 'account_status' ]);
},
'bank' => function ( $object ) {
$object ->select([ 'bank_name' , 'bank_province' , 'bank_branch' , 'bank_account' ]);
}
])
->asArray()
->all();
|
Nach dem Login kopieren
Nach dem Login kopieren
Ich habe mir die SQL-Abfrage angesehen und es stellte sich heraus, dass
Was ist das? Oder stimmt etwas mit der von mir verwendeten Methode nicht? ?
Sie sollten „select“ außerhalb von „joinWith“ schreiben:
1 2 3 4 5 | $user ->find()->select([ 'account_name' , 'account_level' , 'account_status' , 'bank_name' ,
'bank_province' , 'bank_branch' , 'bank_account' ])
->joinWith([ 'account' , 'bank' ])
->asArray()
->all();
|
Nach dem Login kopieren
Natürlich wird es select *
sein, da Ihre Operation nur das Auswahlfeld angibt, wenn die zugehörige Tabelle abgefragt wird.
Geben Sie also einfach die Auswahl an, wie Sie es einzeln getan haben
Das Obige ist, dass die gemeinsame Tabellenabfrage von Yii2 nicht einzelne Felder überprüfen kann? Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!