小島健太郎
kojim****@gmail*****
2013年 3月 21日 (木) 13:02:47 JST
すみません、あとは解決できるつもりでしたが 解決できなかったので再度相談させてください。 同問題で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 ***********************************************