Heim  >  Artikel  >  Backend-Entwicklung  >  Kann die gemeinsame Tabellenabfrage von Yii2 nicht einzelne Felder überprüfen?

Kann die gemeinsame Tabellenabfrage von Yii2 nicht einzelne Felder überprüfen?

PHP中文网
PHP中文网Original
2017-03-30 13:41:522278Durchsuche

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? ?

Antwortinhalt:

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)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn