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ランキング
-
Javascriptを使ってQRコード読...
-
WebbrowserよりHTMLのValue値を...
-
【お問い合わせフォーム】プル...
-
メールを送信するボタンでOutlo...
-
パソコンで動くjavascriptがス...
-
エレメントとは何でしょうか
-
JavaScriptでtabindexの変更っ...
-
<input>のvalue値をプルダウン...
-
JavascriptからPHPへのAjax通信...
-
[jQuery UI] sortableを使いaja...
-
テーブルの形式を整えるJavascript
-
jQuery3 reset()が効かない。
-
jQueryのblockUIをformのボタン...
-
FullCalendar の複数月表示につ...
-
スクリプトの外部からの読み込み
-
変数にドットをいれることはか...
-
アコーディオンメニューが他に...
-
ajaxでPHPにPOST送信して結果デ...
-
別ページのインラインフレーム...
-
要素内を常に一番下を表示させたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javascriptを使ってQRコード読...
-
SQLのmaxで求めた値を変数に代...
-
JavaScriptでtabindexの変更っ...
-
ドラッグ & ドロップでのド...
-
Selenium Basicの件
-
パソコンで動くjavascriptがス...
-
<input>のvalue値をプルダウン...
-
ボタンクリックした際、id末尾...
-
inputタグ内にあるid属性の意味?
-
WebbrowserよりHTMLのValue値を...
-
struts selectbox optionsColle...
-
IndexedDB を使ってファイルア...
-
プルダウン内容に応じてラジオ...
-
JQuery Datepickerについて
-
★大至急!JavaScriptのif文教え...
-
javascriptの計算結果をvalue=""に
-
メールを送信するボタンでOutlo...
-
jquerymobileで作成するアンケ...
-
VBAでIEのHTMLタグの要素を操作...
-
セレクトしたデータを更新させ...
おすすめ情報