ホームページ >バックエンド開発 >PHPチュートリアル >Yii2 ジョイント テーブル クエリでは個々のフィールドをチェックできませんか?
テーブルが接続されていない場合、個々のフィールドを確認できます。
$user->find()->select(['userid', 'username'])->asArray()->all();
それならSQLも普通です
select userid, username from ...
ただし、テーブルを結合するとき。 。 。
$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();
クエリ SQL を調べてみると、
select * from ....
詐欺だったことが判明しました。それとも、私が使用している方法に何か問題があるのでしょうか? ?
テーブルが接続されていない場合は、個別のフィールドを確認できます。
$user->find()->select(['userid', 'username'])->asArray()->all();
それならSQLも普通です
select userid, username from ...
ただし、テーブルを結合するとき。 。 。
$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();
クエリ SQL を調べてみると、
select * from ....
詐欺だったことが判明しました。それとも、私が使用している方法に何か問題があるのでしょうか? ?
joinWith の外側に select を書く必要があります:
$user->find()->select(['account_name', 'account_level', 'account_status', 'bank_name', 'bank_province', 'bank_branch', 'bank_account']) ->joinWith(['account', 'bank']) ->asArray() ->all();
もちろん、そうなります select *
操作は関連テーブルをクエリするときに select フィールドのみを指定するためです
したがって、個別に行ったように select を指定するだけです
以上です。 Yii2 ジョイントテーブルクエリは個々のフィールドをチェックできませんか?関連コンテンツの詳細については、PHP 中国語 Web サイト (www.php.cn) に注目してください。