
symfony+Doctrineで開発をしています。
他のプログラムは経験があるもののPHP初心者です。
2つのテーブルをjoinして、両テーブルの結果を取得します。
where句の条件どおりに行数を得られているので、
joinはできていると思います。
でも、結果を取得することが出来ません・・。
具体的には、joinしたテーブル(BTable)のカラムを取得しようとすると、
「Unknown record property / related component "value" on "ATable"」というエラーが出てしまいます。
(ATableにはvalueなんてないよ、って言っているみたいですが)
●ソースはこんな感じ
$query = Doctrine_Query::create()
->select('a.name, b.value')
->from('ATable a')
->innerJoin('a.Btable b')
->where('b.id = ?', $id);
$list=$query->execute();
foreach($list as $xxx){
print_r($xxx['name']);
print_r($xxx['value']);←ここでエラー
}
●エラーメッセージ
Unknown record property / related component "value" on "ATable"
そこで質問させてください。
・xxx['value']の箇所は、どのように記述すればいいのでしょうか?
・もしくは、Doctrineではjoinしたテーブルの値は取得できないのでしょうか?
(webでいろいろ調べましたが、joinの例はあるものの、select結果を使う、といった例が見つかりませんでした・・)
方法がないのであれば、
あらかじめテーブルをjoinしたviewを作って、
それをselectするようにしようと思っています。
symfony+Doctrineに詳しい方がいらっしゃたら、
よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
すみません。
Doctrine なんだそれ!?って人です。(ほんとごめんなさい。)ドキュメントをみてみたところ
// test.php
// ...
$q = Doctrine_Query::create()
->select('u.id')
->from('User u')
->leftJoin('u.Groups g')
->innerJoin('u.Phonenumbers p WITH u.id > 3')
->leftJoin('u.Email e');
echo $q->getSqlQuery();
が
SELECT
u.id AS u__id
FROM user u
LEFT JOIN user_group u2 ON u.id = u2.user_id
LEFT JOIN groups g ON g.id = u2.group_id
INNER JOIN phonenumber p ON u.id = p.user_id
AND u.id > 3
LEFT JOIN email e ON u.id = e.user_id
こうなるって書いているので JOIN 自体はありだと思います。
もう試されているかもしれませんが、
echo '<pre>'; // Webの場合は付けたほうが見やすいです
foreach($list as $xxx){
var_dump($xxx);
// print_r($xxx); // もしくはこっち
}
echo '</pre>';
してしまってはどうでしょう?
ORマッパーみたいなんで、オブジェクトアクセスなきがしますけど。
$xxx['name']->value みたいな。
それも var_dump でわかると思います。
お礼が遅くなってすみません。
Doctrineに関しては難しくて、結局SQLを直接書く方法を教えてもらって、それで書いてみました。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle SQL update方法 2 2022/06/22 14:07
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PostgreSQL SQLで検索結果の記事を表示したい 1 2022/04/28 21:03
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- PostgreSQL 投稿記事と関連付けているテーブルがわからない 1 2022/04/27 20:29
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
phpの問い合わせフォームを作っ...
-
SplFileObject を利用したとき...
-
BASIC認証のフォームをデザイン...
-
phpのheader("Location:#pos")...
-
返信機能のツリー構造の深さを...
-
PHPからCSVをアップロード後、m...
-
phpinfo で MySQL のバージョン...
-
空文字 "" ですが 空文字の意味...
-
PHP8を使うと、大量のWarningが...
-
PostgreSQLからCSV形式でエクス...
-
コメント機能に返信欄を矢印で...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javascriptを使ってQRコード読...
-
SQLのmaxで求めた値を変数に代...
-
JavaScriptでtabindexの変更っ...
-
<input>のvalue値をプルダウン...
-
Selenium Basicの件
-
パソコンで動くjavascriptがス...
-
ボタンクリックした際、id末尾...
-
フォームの入力時の項目切替に...
-
メールを送信するボタンでOutlo...
-
VBAでIEのHTMLタグの要素を操作...
-
セッション
-
プルダウン内容に応じてラジオ...
-
javascriptの計算結果をvalue=""に
-
BootStrap.TouchSpinについて
-
チェックボックスとラジオボタ...
-
jquery.csv2table.jsに検索窓
-
Doctrineのjoinについて
-
IndexedDB を使ってファイルア...
-
jQueryで外部テキストファイル...
-
JavascriptからPHPへのAjax通信...
おすすめ情報