Wenn Tabellen nicht verbunden sind, können einzelne Felder überprüft werden.
$user->find()->select(['userid', 'username'])->asArray()->all();
Dann ist SQL auch normal
select userid, username from ...
Aber beim Zusammenführen von Tabellen. . .
$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();
Ich habe mir die SQL-Abfrage angesehen und es stellte sich heraus, dass
select * from ....
Was ist das? Oder stimmt etwas mit der von mir verwendeten Methode nicht? ?
Wenn Tabellen nicht verbunden sind, können einzelne Felder überprüft werden.
$user->find()->select(['userid', 'username'])->asArray()->all();
Dann ist SQL auch normal
select userid, username from ...
Aber beim Zusammenführen von Tabellen. . .
$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();
Ich habe mir die SQL-Abfrage angesehen und es stellte sich heraus, dass
select * from ....
Was ist das? Oder stimmt etwas mit der von mir verwendeten Methode nicht? ?
Sie sollten „select“ außerhalb von „joinWith“ schreiben:
$user->find()->select(['account_name', 'account_level', 'account_status', 'bank_name', 'bank_province', 'bank_branch', 'bank_account']) ->joinWith(['account', 'bank']) ->asArray() ->all();
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)!