トップページ⇒php
1001コメント316KB

【PHP】フレームワーク CakePHP 6ホール目【v1.2】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/03/09(月) 10:55:37ID:3PTy4GqZ
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです。

※sage推奨
※日本語マニュアルURLを貼るときは、http://book.cakephp.org/ja/view/1/ のようにしましょう(末尾のエンコードされたタイトル部分は不要)

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0348nobodyさん2009/05/17(日) 17:53:26ID:???
モデルでfieldsに関数(count(*)見たいに)で指定するとモデル名で取得できなくなる(0になる)んですけど
モデル名で取得する方法ってありますか?
0349nobodyさん2009/05/17(日) 18:51:58ID:oOtRNQgA
モバイルサイトを作っているのですが、404エラーページをSJISで
吐かせるにはどうしたらいいんでしょうか?
http://www.syuhari.jp/blog/archives/168
この辺を参考にafterFilterで文字コード変換しているのですが、エラーページの場合は
app_controller通らないので、UTF8のまま表示されてしまいます
(html側のエンコード指定はSJISなので、文字化けした状態です)
0350nobodyさん2009/05/17(日) 18:54:10ID:???
文字化けなおしたいだけなら404notfoundのhtmlをutf8にする
どうしてもsjisにしたいならapacheで設定する
方法は2つ
1.404時の出力ファイルをPHPスクリプトにする
2.404時のヘッダのエンコード設定をsjisにする

検証はしていない
0351nobodyさん2009/05/17(日) 21:26:25ID:???
error.phpでも触ればいいんでない
0352nobodyさん2009/05/17(日) 21:40:34ID:oOtRNQgA
回答ありがとうございます

>>350
1だと、ちょっとスマートではない気がするので、できればCake内で解決したいです
2のヘッダですが、ヘッダ自体はSJISにしているのですが、データの中身はUTF8なので
文字化けしているという状況です

>>351
app/error.phpの中でもafterFilterは効くのでしょうか?
ちょっと試しに書いてみたのですが、動かないようです・・・
error.phpのサンプルがあまり無いため、よくわからないのですが
function error($params)を書いて、その中に処理を書くべきなのでしょうか?
0353nobodyさん2009/05/17(日) 22:18:17ID:???
>>352
じゃあsjisにすればいいんじゃないの?
404ページはapacheがデフォルトで持ってるhtmlファイルが出てるだけでしょ
0354nobodyさん2009/05/17(日) 22:38:31ID:oOtRNQgA
>>353
cakephpの404ページはviews/layout/default.ctpの中に
views/error/error404.ctpが入ったモノが表示されるはずです・・・
0355nobodyさん2009/05/18(月) 01:07:59ID:???
function render($action = null, $layout = null, $file = null) {
if($this->RequestHandler->isMobile()){
echo mb_convert_encoding(parent::render( $action, $layout, $file ),"SJIS","UTF-8");
exit;
}
echo parent::render( $action, $layout, $file );
exit;
}

renderをapp_controllerで上書きすりゃえんじゃね。
0356nobodyさん2009/05/18(月) 02:20:27ID:???
>>354
それのエンコードかえたら?
0357nobodyさん2009/05/18(月) 20:26:30ID:???
requestAction()で別コントローラのアクションを呼び出すと、
そのアクション中でcontroller->set()されたものがビュー(エレメント)内で使えない。
これは元のコントローラでセットしろと言う事?
コードのまとまりが悪くなっちゃうと思うんだけど。
03583572009/05/18(月) 20:27:41ID:+BNQiVp5
セットされたものが使えないと言うのは、
requestAction()の呼び出し元のビューでもそうだし、
そのエレメント内でもそう。
つまりrequestAction()で呼び出されたアクション中ではcontroller->set()が機能してないって事だと思う。
03593572009/05/18(月) 20:45:14ID:+BNQiVp5
自分が遭遇してるケースは
ビューから
View->element(hoge,array('hoge'=>View->requestAction()));
と言う形でエレメントを描画しようとしたら
この形で呼び出したrequestActionではエレメントでも呼び出し元ビューでも
set()された変数がundefinedになるというもの。

requestAction()はコントローラからも呼び出せるが
MVC的にはビューから呼び出すのが正しいはず。
03603572009/05/18(月) 20:51:41ID:???
あー、requestAction()で呼び出された場合set()は効かなくて
element()の引数で渡すか完全にレンダーして返せと言う事か
とりあえずやりたい事は出来そうお騒がせしました
0361nobodyさん2009/05/18(月) 21:06:16ID:???
AuthComponentって便利ですね^^
0362nobodyさん2009/05/18(月) 21:07:00ID:???
CakePHPを始めるのにオブジェクト指向は必須ですか?
0363nobodyさん2009/05/19(火) 03:27:27ID:???
もうすでにあなたはオブジェクトの中にいるわけだけども。
0364nobodyさん2009/05/19(火) 20:44:37ID:???
ローカルのWindowsで、Apc入れてcore.phpでキャッシュエンジンに設定したんだけど、
cakeで作ったページにアクセスすると、表示されなくて、そのまま更新すると500エラーが出てしまう。

Apacheのログ見たら、最初表示されない時は304、更新した時は
PHP Fatal error: Cannot redeclare class debugger in 〜\\cake\\libs\\configure.php on line 302, referer: http://ローカルのアドレス
というのが出る。

debuggerの再定義をしてるよー、っていうエラーなのは判ったんだけど、
どう対応すればいいかわからん!!

Apc導入してる人いる?
0365nobodyさん2009/05/19(火) 22:08:47ID:EQ1qWtUA
デバッグモードで表示されるSQLのクエリログを本番でも残したいんだけど
http://www.1x1.jp/blog/2007/04/cakephp_sql_log.html
http://d.hatena.ne.jp/kusakari/20080903/1220429833
これ意外でもうちょっとスマートな方法はない?
デバッグモードで動くコンポーネントとかは結構あるけど、
本番環境でログとれるのは見つからなかった。

>>364
知り合いがcake + APC使ってたけど、特にそういう話は聞いたこと無いな。
今度このスレ見せてみるわ
0366nobodyさん2009/05/20(水) 11:13:28ID:???
ファイルのアップロードコンポーネントって
なんかいいのないの?FileHandlerは2007年に作って更新とまってるっぽいんだけど。
0367nobodyさん2009/05/20(水) 14:19:38ID:???
You作っちゃいなyo
0368nobodyさん2009/05/20(水) 19:42:48ID:???
アップロードコンポーネントなんて使わないで、
app_modelにバリデーション処理を書いて、
コントローラーで普通にcopyすればいいんじゃない?
私はそうしてるけど。
0369nobodyさん2009/05/20(水) 20:02:44ID:???
なんで、Model->findのときはconditionsが第1引数なのに、readは二番目なの?

何か合理的な意味があるんでしょうか?
使いにくくて仕方なかとですたい
0370nobodyさん2009/05/21(木) 00:45:17ID:???
readにconditionsなんか指定できたっけ?
0371nobodyさん2009/05/21(木) 09:42:44ID:???
>>369
1.1の話?
0372nobodyさん2009/05/21(木) 11:51:39ID:???
>>370,371
コンディションっつうのはつまりプライマリキーのことです
find の感覚で、第1引数にIDを渡しちゃうんです。
まぁ、慣れればどってこと無いのかもですが。

それに、column を指定しないことはあっても id を指定しないことなんて
滅多と無いんだから、普通に考えたら id を第1に持ってきそうな
気がするんですよ。

だけど、それは私がよく知らないからであって、ひょっとしたら深い意味があるのかなと。
0373nobodyさん2009/05/21(木) 12:31:53ID:???
>>372
idは事前に$this->Model->id = xx とかで指定しておくと第2引数のidも省略可でしょ。
そうなるとreadメソッドにとって大事なのはむしろfieldの方である。
とかそんな感じなんじゃないすかね。
0374nobodyさん2009/05/21(木) 14:52:34ID:???
>>373
あぁ、そうか!
ありがとうございます
0375nobodyさん2009/05/21(木) 23:32:33ID:???
1.1と
1.2と
めちゃめちゃ違うの?

1.1の本、買っちゃったんだけど?
0376nobodyさん2009/05/22(金) 00:16:48ID:???
>>375
実際使ったことないけど、その界隈のブログだとか、スレ読んでると、かなり違うっぽいけど。
RCと正式版とも結構違うとか書いてあったような。

1.1でアプリケーションを組みつつ、1.2の違いを調べながら、問題あるようなら1.2の本買えば?
0377nobodyさん2009/05/22(金) 00:40:30ID:???
>>375
まあ基本の動作はそんなに変わってないだろうけど、
1.1で普通にやってたことが1.2では非推奨になってたりとか、
一所懸命なんか作ったはいいけど、1.2なら最初っからその機能あるじゃん。みたいなことはあるから。

まあ動きは本で学んで、あとはオンラインマニュアルで。ってのでいいかもしれんけど。
0378nobodyさん2009/05/22(金) 01:00:50ID:???
1.2から完成度が高いフレームワークになったね。
0379nobodyさん2009/05/22(金) 02:38:39ID:kpKonnkD
>>375
お金に余裕あるのなら1.2の本を買って先に読んだ方がいい
1.1を最初に学ぶと、後から学びなおしの部分が多い
0380nobodyさん2009/05/22(金) 06:46:23ID:???
>>375
> 1.1の本、買っちゃったんだけど?
多分、これ買っちゃって悩んでるんだと思うけど
「CakePHPガイドブック」
http://www.amazon.co.jp/dp/4839924317/
1.1と1.2はだいぶ違うとおもう
まず、1.2の本を先に読んだ方が良いとおもう
今のお勧めはこれかな
「CakePHPによるWebアプリケーション開発」
http://www.amazon.co.jp/dp/4798022225/
1.2がある程度理解できてから「CakePHPガイドブック」のおいしい所を頂けば良いのでは
0381nobodyさん2009/05/22(金) 06:50:42ID:???
1.1とか実用レベルのフレームワークじゃなくない?
1.2ですらそう思う場面は出てくる

内容はかなり変わってるよ
0382nobodyさん2009/05/22(金) 13:12:58ID:???
>>381
俺もそう思う。1.1は時々めっちゃ重くなる時がある。
0383nobodyさん2009/05/22(金) 13:16:01ID:???
しかしcakeが非実用レベルだとすると実用レベルのFWって…
0384nobodyさん2009/05/22(金) 15:57:38ID:???
1.2で駄目ならベタ書きするしかないなあ。
0385nobodyさん2009/05/23(土) 21:10:11ID:???
CakePHPによるWebアプリケーション開発(秀和システム)
CakePHPによる実践Webアプリケーション開発(毎日コミュニケーションズ)
どっちも上でおすすめされてるけど、1冊選ぶならどっち?

ネットで調べた感じだと、秀和→初〜中級向け 毎日→中級向け なイメージ。
毎日はサンプルにエラー多数っぽい。秀和はここ以外レビューとか全然見つからない、で悩み中。

今回フレームワーク初めてで、とりあえず本家チュートリアルは問題なく分かった。
ただ実際にアプリ組もうとするとわかんないことばっかりで
Cake使わなければ2日でできるようなものに1週間弱かかったり。なんで基礎からやり直すことにした。
ポケットリファレンスは買うつもりなんだけど、あと1冊
とくに両方読んだ人、どっちにするべきか教えてちょ。
0386nobodyさん2009/05/23(土) 21:33:00ID:???
俺はどっちも持ってるが、毎日の方かな。
実際に使えるアプリをサンプルとして挙げているので、サンプル開発の流れがきちんと追えれば
実際のプロジェクトにも十分応用できると思う。
逆に秀和の方、1回読んだきりだ。
0387nobodyさん2009/05/23(土) 23:14:52ID:???
>>386
おー、サンクス。
タイトルどおり毎日の方が実践的ってことか。
こっちにしよ。
0388nobodyさん2009/05/25(月) 00:22:40ID:???
cake触り始めで謎だらけの中質問します。

ログイン用のフォームを複数画面のはじっこに出しておきたいんだけど、cakeだとめんどくさいでしょうか?
おとなしくuser/loginに飛ばすのが一般的でしょうか?
0389nobodyさん2009/05/25(月) 01:01:07ID:???
>>388
別にめんどくさくないですよ。
Authでログインされてなければフォーム表示させればいいだけだから。
エレメントでも作っておけばいいです。
0390nobodyさん2009/05/25(月) 03:19:09ID:???
>>389 

いろいろやってみた結果できました!
ありがとう!
0391nobodyさん2009/05/25(月) 04:48:35ID:???
layout使って非ログイン時は常に出しておけば余裕なのでは
0392nobodyさん2009/05/26(火) 07:44:05ID:???
auth導入してみたらルートにアクセスするとログインページに勝手にリダイレクトされるんだけどなんなの?
こういう仕様?
0393nobodyさん2009/05/26(火) 08:04:19ID:???
自己解決。
loginactionをコントローラ別で振り分けてやればいのね。

便利なんだか不便なんだかいまいちだなぁ。
0394nobodyさん2009/05/26(火) 12:08:51ID:???
>>392-393
つ $this->Auth->allow()
0395nobodyさん2009/05/26(火) 13:30:49ID:SiC5Hm3y
↓のソースをcakephp+smartyでテストしていて詰まりました。
ttp://3d.rokujyou.com/cake/sample7.html

<?php echo $html->input('Urllist/url', array('size' => '40'))?>
の部分を
{$form->input('Urllist/url')}
としたのですがinput内にURLが表示されません。
cakephpのみのテストでは表示されていたのでsmartyが変な処理をしている?ようなきがします。

ご教示お願いします。
03963952009/05/26(火) 14:11:09ID:SiC5Hm3y
以下のように設定したところ表示されましたがこれがデフォルトでしょうか?
{$form->input('url',array('value'=>$urllist.Urllist.url))}
Smarty導入前は書かなくても表示されたので別の方法がありましたらご教示ください。

*array('value'=>$urllist.Urllist.url)の部分はエラーが出ますので実際はcall_user_func_arrayで加工してあります。
0397nobodyさん2009/05/26(火) 17:38:03ID:EqLrLRVD
セッションをmysqlのcake_sessionsテーブルで管理して、
findでセッション情報を読みたいのですが、
dataカラムの、シリアライズされた文字列を、
アンシリアライズして配列に格納するにはどうしたらよいでしょうか?

unserialize()関数を使ってみましたが、Error at offsetというエラーが出て失敗します。
散々ググりましたが、良い手が見つかりません。
どなたか知恵を貸して下さい。

CakePHPのバージョンは1.2.2.8120で、PHPのバージョンは4.4です。
0398nobodyさん2009/05/26(火) 19:36:17ID:???
DB登録した時のエンコードに合わせれば、
アンシリアライズできるんじゃね?
03993972009/05/26(火) 19:55:53ID:EqLrLRVD
>>398
エンコードはUTF8で統一しています。

cake_sessionsテーブルのdataカラムから読み出した文字列を入れると、
下記のような関数の実行と結果になります。

unserialize('Config|a:4:{s:9:"userAgent";s:0:"";s:4:"time";i:1243350003;s:4:"rand";i:1783651587;s:7:"timeout";i:10;')
↓
unserialize() [function.unserialize]: Error at offset 0 of 102 bytes
0400nobodyさん2009/05/27(水) 08:53:05ID:???
CakePHP で動いている CMS の色々なサンプルを見たいのですが
いま、まともに動いているプロジェクトって wildflower ぐらい?
0401nobodyさん2009/05/27(水) 15:15:10ID:???
こんにちは。

<?php echo $form->day('DATE', null, array("disabled"=>true));?>
などとして、読み取り専用で表示されるようにしたいのです。

このような書き方で、表示上は確かに読み取り専用になるのですが、
上記を含むformのsubmitを実行すると、真っ白な画面が表示されてしまいます。

何か書き方が悪いのか、代替案があるのか、ご指導いただければと思います。
0402nobodyさん2009/05/27(水) 15:35:04ID:???
>>401
真っ白な画面ってのが意味不明。エラー見ようよ。
俺も読み取り専用で表示してるのあるけど別に問題なし。
0403nobodyさん2009/05/27(水) 15:43:24ID:???
>>402
エラーが何も出ていないんです・・・。
blackHoleメソッドが呼ばれている気がするのですが、別にrequireAuthも
設定していないんですよね・・・。
04044012009/05/27(水) 15:46:52ID:???
追記です。

textareaなど、readonly属性があるものは、
$form->textarea('aaa, array("cols"=>40,"rows"=>5,"readonly"=>true));
などと書いて問題なく実現できています。

selectだけが動作しない状況です。
0405nobodyさん2009/05/27(水) 17:39:47ID:???
エラーが表示されてないだけじゃなかろか。

Configure::write('debug', 0);
とかになってない?
0406nobodyさん2009/05/27(水) 17:56:43ID:???
>>401はsubmitの後の話だろ?
>>404は表示の時の話か?
04074012009/05/27(水) 20:12:40ID:???
>>405
Configure::write('debug', 2);
となっています。

>>406
すみません。
表示→submitの一連の流れが実行できるかという話です。

そもそもやりたいことというのが、
入力→確認→save
という一連の流れで使用するviewを同一のもので使いまわしたく、
readonly,disabledを使って表示の制御ができればいいかなと思ったのです。
暫定的に確認用のviewを用意することで回避はしますが、可能であれば
同一viewでやりたいと思っていますので、もしも情報ありましたらお教え
いただければと思います。
0408nobodyさん2009/05/27(水) 21:22:37ID:???
デバッグレベル0が原因ではないとしたら。
controllerファイルとviewファイルで文字コードが食い違っとる
exit;の消し忘れ
bomの混入

...あたりを疑ってみれ
0409nobodyさん2009/05/28(木) 17:57:49ID:???
記事とタグとコメントの関係で、

記事とタグは    多対多
記事とコメントは  一対多

これをContainable使ってあるタグに属してるニュースをコメントごと取ってきたいです。

$option['contain']['Tag']['conditions'] = array('id' => $tag_id);
$option['contain']['Comment']['fields'] = array('name', 'comment', 'created');
$option['fields'] = array('News.contents');

$data = $this->find('all', $option);

これだと、タグに属して居ないにもかかわらずTagの中身がEmptyになった状態で検索に引っかかってしまいます。
何かいい方法はないのでしょうか。
0410nobodyさん2009/05/28(木) 17:58:51ID:???
array
0 =>
array
'News' =>
array
'contents' => string 'テスト' (length=16)
'id' => string '1' (length=1)
'Comment' =>
array
0 =>
array
...
1 =>
array
...
'Tag' =>
array
empty
このような状態です。
0411nobodyさん2009/05/28(木) 20:18:29ID:???
>>409
$option['conditions'] = array('NewsTag.tag_id' => $tag_id);
にしてやればいいと思うよ。
0412nobodyさん2009/05/29(金) 02:26:31ID:???
Fast cakephp
って本。

なんのために存在するのか、
まったく意味がわからない。
なにこの本。
0413nobodyさん2009/05/29(金) 02:42:09ID:???
そもそも紙の本が要らなくなって久しい。
0414nobodyさん2009/05/29(金) 10:26:09ID:???
紙の本より公式のbookのがわかりやすくないか?
0415nobodyさん2009/05/29(金) 18:13:09ID:???
Cake触り始めたんだけど
URLはhttp://example.com/hogehoge/
で、hogehogeコントローラが呼び出されるでおk?

今試してみたんだが、ページが真っ白orz
エラー設定もconfigでできるのかな
0416nobodyさん2009/05/29(金) 19:36:41ID:???
>>415
コントローラは複数形
真っ白なのはCake設置の段階で何かが間違ってる可能性が高い
とりあえずブログチュートリアルでもやれ
0417nobodyさん2009/05/29(金) 21:43:45ID:???
複数形じゃなくても大丈夫だよ。
0418nobodyさん2009/05/29(金) 23:54:37ID:???
Cake標準のXMLクラスって、Xpathには対応しないのかな?
Xpath使えないんだったら、普通にSimpleXML使うよなぁ・・・
PHP4でも使えるのはでかいけど。
0419nobodyさん2009/05/30(土) 16:05:50ID:???
HTMLヘルパーとかFormヘルパーで自動生成するとdivdivしすぎてて
ケータイサイト向けだと使いにくすぎる
せっかくの自動生成なのに、ケータイのアホ仕様のせいで!

>>418
SimpleXMLが十分便利なのでそっちつかっちゃうな
0420nobodyさん2009/05/30(土) 17:20:34ID:???
http://blog.ecworks.jp/ktai
ここで出されてるライブラリ使ってるんだけどさ、

画像表示おかしくない?
相対URL生成する時はちゃんとRouter::url()通してくれないと
/~hoge/hugaとかに置いてる時におかしくなるんだよね。


バカなの死ぬの
0421nobodyさん2009/05/30(土) 21:33:58ID:???
>>420
使えないライブラリだと思うんなら自分で修正するか、他を探すか
1から自分で作ればいいじゃん
そんなこともできないの?
バカなの?死ぬの?
0422nobodyさん2009/05/30(土) 22:03:05ID:???
1.2のpaginationってなんでfirst, number, lastだけ
classもidもないただのspanが勝手につくの?
prevとかnextはspanなんてつかないのに
なんか気持ち悪いから消したいんだけど、第2引数にarray('tag'=>false)を
入れても<span>〜</span>が<>〜</>になって消えないし
0423nobodyさん2009/05/30(土) 23:09:09ID:???
作者に直接連絡する勇気すらないやつが掲示板で叩くとか
0424nobodyさん2009/05/31(日) 07:57:53ID:???
>>420
何様なの?
バカなの?死ぬの?
0425nobodyさん2009/05/31(日) 17:48:45ID:???
>>420
確かにRouter::url()使わないでURL指定するライブラリを公開されると苦労するが
421や423や424の言う通り、ここで叩くお前がおかしい

バカなの?死ぬの?
0426nobodyさん2009/05/31(日) 18:26:41ID:???
ドキュメントルートより上のディレクトリにファイルを置くことができないレンタルサーバを使っています。マニュアルでいう開発用のインストールしか選択肢がないのですが、このようなレンタルサーバではCakephpの使用は控えた方がいいのでしょうか?

0427nobodyさん2009/05/31(日) 18:48:00ID:???
>>426
要求される「セキュリティ」の考え方による。CakePHPを分散設置する目的ってな〜んだ?
04284202009/06/01(月) 12:36:50ID:???
作者の掲示板に書こうと思ったんだけどメルアド記載しなきゃいけなかったし

ここで本当に俺の言ってることがあってるかどうか確かめたかったんだ。


やっぱりRouter::url()使うのが正解なんだね。死なないよ
0429nobodyさん2009/06/01(月) 13:38:40ID:???
使ってないなら使ってない理由があるんじゃまいか?
0430nobodyさん2009/06/01(月) 14:24:39ID:???
>>429
その使ってない理由はなんなんだろうか。
0431nobodyさん2009/06/01(月) 16:46:42ID:???
>>428
専門板できもい言い回し使うから叩かれるんだろうが
普通に
Router::url()使ってないからルートに置かない場合に
不便なんだけど、修正提案出した方がいいかな?
とか聞けばいいものを
04324202009/06/01(月) 18:18:49ID:???
>>431
すみませんでした。

>>429で言ってるように理由はないんでしょうか?
0433nobodyさん2009/06/01(月) 18:57:16ID:QwyjBfuL
findのconditionsを指定するとき
array("Post.created > DATE_SUB(NOW(), INTERVAL ? WEEK)" => "2"))
とかやるより、あらかじめPHP側で
array("Post.created >" => date('Y-m-d H:i:s', strtotime("-2 weeks"))
とやった方がいいの?
今までDATE_SUB使ってたんだけど、cookbookを見たら下の方を使っていたので
下の方にかき方変えようか迷ってるんだけど・・・
0434nobodyさん2009/06/01(月) 19:22:13ID:???
>>420
http://blog.ecworks.jp/archives/691
だそうですよ。よかったね修正してくれるって。でも直接言ってくれって。
0435nobodyさん2009/06/01(月) 19:28:19ID:???
420のたたきっぷりはビックリして何も言えなかったけど、
ktailibraryの作者さんの大人な対応ぶりにはさらにビックリ。

やっぱりできるプログラマーは、違いますね!
0436nobodyさん2009/06/01(月) 20:34:29ID:???
>>433
DB依存のコードはなるべく書かないほうが正解じゃなかろか。
そのためのDBラッパーなんだし。
0437nobodyさん2009/06/01(月) 21:02:12ID:???
>>436
言われてみればそうだな。
回答ありがとう。
04384202009/06/01(月) 21:19:43ID:???
>>434
ごめんなさいごめんなさいごめんなさい><
0439nobodyさん2009/06/02(火) 00:51:58ID:???
>>433
ずっと同じDBならどっちでもいいよ。
0440nobodyさん2009/06/02(火) 10:02:44ID:???
現在、サイト内の example.com/calendar がwebrootになっていて、
それ以外のフォルダには以前からあるCMSのファイルやHTMLファイルがあります。
この状態で、calendar以外の場所、つまりappの外からcakeのモデルにアクセスすることは可能ですか?
0441nobodyさん2009/06/02(火) 17:35:21ID:???
>>440
出来ると思うけど何がしたいの
04424402009/06/02(火) 19:04:30ID:???
>>441
レスありがとうございます。

/calender にcakeをインストールしてイベント情報などを入れていて、
そのイベントのリストを別のディレクトリにあるページに表示したいんです。

feed経由やcakeを通さずに直接DBにクエリを投げる方法は思いつくのですが、
コントローラ内のアクションを通せば抽出も楽だし、
更に可能ならヘルパーやエレメントもそのまま使えないかな、と。
0443nobodyさん2009/06/02(火) 19:33:15ID:???
>>442
なんで別ディレクトリから読む必要があるのかわからないけど
cakeでcron動かす時の応用でなんとかなるんじゃない?

$_GET['url'] = "event/view/1";
require_once( "/home/hoge/www/calendar/index.php" );

ってしたらexample.com/calendar/event/view/1にアクセスしたのと同じことになるから
それで何とかならないのかな。
0444nobodyさん2009/06/02(火) 20:09:02ID:???
俺ならその別ページとやらからAjaxで呼んでみるかな
04454402009/06/02(火) 23:08:37ID:???
情報ありがとうございます。
サイト全体は既存のCMSで管理されているため、まるっとcakeにしちゃうことはできず、
/calendar 以下にappを構築して、他のディレクトリから必要に応じて使えればと考えました。
もしかすると何か根本的に考え方を間違えているのかもしれませんが…

>>443
お、なるほど。そんな手があるんですね。
画面遷移があるとまた一工夫必要っぽいですが、今回はこれでいけそうな気がします。

>>444
Ajaxで読み込むなら結構自由に何でもやれそうですね。
ただやっぱりクライアント環境に依存しないに越したことはないので、
まずは>>443の方法を試してみようと思います。

ありがとうございました!
0446nobodyさん2009/06/02(火) 23:10:34ID:???
俺ならその別ページとやらからJSON-RPCで呼んでみるかな
0447nobodyさん2009/06/03(水) 11:59:46ID:???
iframで既存のサイトの一部分をcakeで出すとか。
0448nobodyさん2009/06/03(水) 12:51:28ID:???
>>447
…。
■ このスレッドは過去ログ倉庫に格納されています