tsuji kuni
kunit****@gmail*****
2013年 3月 21日 (木) 15:32:09 JST
こんにちは。 Kunitsujiともうします。 $List->s1.staff_name; エラーの内容を見る限り、 この書き方に問題がある、と言うことだとおもいます。 SQLの書き方のs1. staff_nameというものが、phpでは理解できない、ということではないでしょうか。 細かく検証してないので、詳しくはわかりませんが、 SELECT s1.staff_name as s1_staff_name とか事前に変えておけば間違いはないと思います。 そのような複数テーブルでの全ての項目を取り出した場合、結果がどういう形で取り出せているかは、 var_damp等で確認してみれば、わかるかもしれませんね。 2013/03/21 13:03 "小島健太郎" <kojim****@gmail*****>: > すみません、あとは解決できるつもりでしたが > 解決できなかったので再度相談させてください。 > > 同問題でModel側で1つのマスタを複数回参照した後、 > ControllerとViewで下記のような流れでデータを取り出そうと > していますが、予想と異なりうまくいきませんでした。 > > //Model > function getList(){ > > $this->db->select("*"); > $this->db->from(t_daichou as d); > $this->db->join("m_staff as s1","d.uke_id=s1.staff_id","left"); > $this->db->join("m_staff as s2","d.tai_id=s2.staff_id","left"); > $this->db->join("m_staff as s3","d.update_id=s3.staff_id","left"); > > return $this->db->get(); > } > > //Controller > function listAll(){ > $data[rsList] = $this->m_sample->getList(); > $this->load->view('v_listAll',$data); > } > > //View > foreach($rsList->result() as $List){ > //test > echo $List->s1.staff_name; > echo $List->s2.staff_name; > echo $List->s3.staff_name; > } > > エラーの内容 > Undefineed property:stdClass::$s1 > FIlename:libraries/Loader.php(673):eval()'d code > > これもまた何かViewでの記述方法があるのでしょうか? > (Codeigniter以前の未熟な問題だったらすみません) > たびたび申し訳ありません、宜しくお願い致します。 > > 小島 > > ********************************* > > 2013年3月21日 9:57 小島健太郎 <kojim****@gmail*****>: > > お世話になっております。 > > 質問者です。 > > ご回答ありがとうございます。 > > > > みなさまからアドバイス頂いたように > > > > $this->db->join("m_staff as s1","d.uke_id=s1.staff_id","left"); > > $this->db->join("m_staff as s2","d.tai_id=s2.staff_id","left"); > > $this->db->join("m_staff as s3","d.update_id=s3.staff_id","left"); > > > > の書き方で正常に動作することを確認することができました。 > > 大変助かりました。 > > また、アクティブレコードを使用することのメリットも大変参考になりました。 > > > > 今後ともよろしくお願いいたします。 > > > > 小島 > > > > > > **************************************** > > > > 2013年3月20日 18:27 齊藤保 <saito****@jin-s*****>: > >> 戸田様 > >> > >> ご教示ありがとうございます。 > >> とてもよく理解出来ました。 > >> 弊社でも少し研究してみます。 > >> > >> > >> > >> 2013年3月20日 15:27 戸田 広 <info****@sciss*****>: > >> > >>> こんにちは、戸田です。 > >>> > >>> 弊社では、上記の記述を見て分かる通り、アクティブレコードを > >>> 使用するのとSQLを自前で組むことの差異を感じられなかったため > >>> 使用しない選択をしたのですが、アクティブレコードを使用する事の > >>> メリット等ありましたら、ご教示いただけるとありがたいです。 > >>> > >>> > >>> 私がすぐ思いつく大きな違いは 2点ありまして、 > >>> その違いは、開発内容で言えば > >>> 初期条件が FIX して変わりにくい委託開発よりも > >>> 常に変化・柔軟な対応を求められる > >>> 自社パッケージの開発・展開などで利いてくると思っています。 > >>> > >>> > >>> 1. Active Record を使うと、仮に RDBMS が変わることになっても > >>> Model のコードを変更する必要がありません。 > >>> > >>> 2. CodeIgniter では、 Active Record を使うと > >>> /application/config/database.php で設定できる dbprefix が > >>> すべての SQL に対して自動的に付与されるようになっています。 > >>> dbprefix を変更する時は、 database.php を書き換えるだけで > >>> Model のコードを変更せずに、一元的に変更できます。 > >>> > >>> > >>> > >>> 以上です。 > >>> > >>> > >>> > >>> On 2013/03/20, at 12:56, 齊藤保 wrote: > >>> > >>> 横入りで失礼いたします。 > >>> JIN SOFTWAREという会社で、自社製品に > >>> CodeIgniterを使用させていただいている齊藤と申します。 > >>> よろしくお願いいたします。 > >>> > >>> アクティブレコードは弊社では使用しておらず、 > >>> SQLをダイレクトに組んで投げる方式をとっておりますが、 > >>> アクティブレコードが引数を元に最終的にはSQLを組み上げる > >>> ものであるならば、下記のような書き方になるのかと、 > >>> 推測します。 > >>> > >>> $this->db->select("*"); > >>> $this->db->from(t_daichou as d); > >>> $this->db->join("m_staff as s1","d.uke_id=s1.staff_id","left"); > >>> $this->db->join("m_staff as s2","d.tai_id=s2.staff_id","left"); > >>> $this->db->join("m_staff as s3","d.update_id=s3.staff_id","left"); > >>> > >>> これによって内部的に > >>> select * from t_daichou as d > >>> left join m_staff as s1 on d.uke_id=s1.staff_id > >>> left join m_staff as s2 on d.tai_id=s2.staff_id > >>> left join m_staff as s3 on d.update_id=s3.staff_id > >>> > >>> というSQLが投げられるようならこれでいけるかと > >>> 思います。 > >>> > >>> 弊社では、上記の記述を見て分かる通り、アクティブレコードを > >>> 使用するのとSQLを自前で組むことの差異を感じられなかったため > >>> 使用しない選択をしたのですが、アクティブレコードを使用する事の > >>> メリット等ありましたら、ご教示いただけるとありがたいです。 > >>> > >>> ちなみに弊社では今後も自社製品(受注も含め)には全て > >>> CodeIgniterを使用する計画でおります。 > >>> session周りで若干バグ臭い動きもありますが、回避出来ない > >>> レベルでなく、何より敷居の低さ、手軽さが魅力で、軽量なのに > >>> 必要な機能が揃っていると実感しています。 > >>> > >>> 導入の際には日本CodeIgniterユーザ会の発信される情報を > >>> 頼りにさせていただきました。あらためて御礼申し上げます。 > >>> > >>> 今後ともよろしくお願い申し上げます。 > >>> > >>> > >>> > >>> > >>> 2013年3月19日 18:57 Kenichi Hayashi <kenic****@gmail*****>: > >>>> > >>>> 林です。こんにちは。 > >>>> > >>>> > 要は同じテーブルをleftjoinで複数回参照する場合の書き方ですが、 > >>>> > 何かそのような記述方法というものがあるのででしょうか? > >>>> > >>>> m_staffにそれぞれエイリアスを指定してみてはどうでしょう。 > >>>> > >>>> "m_staff as s1" > >>>> "m_staff as s2" > >>>> "m_staff as s3" > >>>> > >>>> のような感じで。 > >>>> > >>>> -- > >>>> Kenichi Hayashi > >>>> > >>>> _______________________________________________ > >>>> Codeigniter-users mailing list > >>>> Codei****@lists***** > >>>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > >>> > >>> > >>> > >>> > >>> -- > >>> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > >>> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > >>> > >>> 〒167-0043 東京都杉並区上荻1-16-3 森谷ビル4B > >>> JIN SOFTWARE株式会社 > >>> 代表取締役 齊藤 保 > >>> TEL: 03-6915-1215 FAX: 03-6915-1216 > >>> Mobil: 090-4416-0111 > >>> Mail saito****@jin-s***** WEB http://jin-soft.jp > >>> > >>> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > >>> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > >>> _______________________________________________ > >>> Codeigniter-users mailing list > >>> Codei****@lists***** > >>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > >>> > >>> > >>> > >>> _______________________________________________ > >>> Codeigniter-users mailing list > >>> Codei****@lists***** > >>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > >>> > >> > >> > >> > >> -- > >> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > >> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > >> > >> 〒167-0043 東京都杉並区上荻1-16-3 森谷ビル4B > >> JIN SOFTWARE株式会社 > >> 代表取締役 齊藤 保 > >> TEL: 03-6915-1215 FAX: 03-6915-1216 > >> Mobil: 090-4416-0111 > >> Mail saito****@jin-s***** WEB http://jin-soft.jp > >> > >> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > >> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > >> > >> _______________________________________________ > >> Codeigniter-users mailing list > >> Codei****@lists***** > >> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > >> > > > > -- > > *********************************************** > 医療法人栄和会泉川病院 > 医療情報部 情報システム課 > 小島 健太郎 > E-mail:kojim****@gmail***** > Tel:0957-72-2017 > *********************************************** > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > -------------- next part -------------- HTMLの添付ファイルを保管しました... Descargar