0
私はアクティブレコードモデル "イベント" hasOneの関係 'getUser'を持っています。 今、私がしなければ:Yii 2アクティブクエリーjoinWith問題
$eventModels = Event::find()->joinWith([
'user' => function($q){
return $q;
}])->all();
----------------------------------------------------
foreach($eventModels as $m){
var_dump($m->user); //Everything good as $m->user returns the related user object
die('skdw');
}
しかし、私はjoinWithクエリで「選択」を追加した場合、その後、関連する「ユーザー」オブジェクトがnullになります。
$eventModels = Event::find()->joinWith([
'user' => function($q){
$q->select('email');// or, ['email'] or ['user.email'] etc. fields.
return $q;
}])->all();
----------------------------------------------------
foreach($eventModels as $m){
var_dump($m->user); // Returns NULL
die('skdw');
}
ただし、$ q-> select( '*')を選択すると、$ m-> userの作業が行われます。私は
(私はYiiの2.0.9に取り組んでいます、今のところ)それはYiiの2のいくつかの以前のバージョンで動作するように使用と考えてい
は、この予想される動作ですか?はいの場合、関連するjoinWithモデルの一部の選択フィールドのみを取得するソリューションは何ですか?関連するフィールドの一部に「TEXT」データ型が含まれている可能性があるため、すべての関連フィールドを取得する必要はありません。