テーブルを 1 つの巨大なテーブルに結合して、ネストされた FOR やリレーションを使用せずにすべての列にアクセスできるようにすることに問題があります。状況は次のとおりです。
cars
========
id_producer (PK)
id_model (PK)
length
weight
...
texts
============
id_model (PK)
language (PK)
text
...
テーブルは 1 つのキーを共有します: id_model
これらのテーブルを次のように結合したい:
SELECT *
FROM cars c
JOIN texts t ON c.id_model = t.id_model
WHERE t.language = 'english'
.. 車ごとに 1 行を返します。
SQL は簡単ですが、Yii はそうではありません :(
スコープまたはリレーションを使用して実行しようとしましたが、目的の出力が得られませんでした。私は次のように書きたい:
$carsWithTexts = Cars::model()-> ... something ... ->findAll()
foreach ($carsWithTexts as $c)
{
echo $c->id_producer;
echo $c->id_model;
echo $c->id_text;
}
.. ネストされた FOR はありません。FOR 内にリレーションまたはスコープはありません。
これは可能ですか?または、常に次の構造を使用する必要がありますか:
$carsWithTexts = Cars::model()-> ... relation ... ->findAll()
foreach ($carsWithTexts as $c)
{
echo $c->id_producer;
echo $c->id_model;
echo $c->relation[0]["id_text"]; // or nested for
}
コマンド「with」および「together」を使用できることはわかっていますが、思い通りに機能しませんでした。