【PHP】フレームワーク CakePHP 13ホール目【v2.0】at PHP
【PHP】フレームワーク CakePHP 13ホール目【v2.0】 - 暇つぶし2ch578:nobodyさん
12/02/08 18:10:15.72
your "CakePHP" is common file, on libs or vendors?

579:572
12/02/08 18:39:58.51
小学生かこいつら

580:nobodyさん
12/02/08 21:36:31.59
>>564
日本で専門色翻訳になれば儲かる。

581:nobodyさん
12/02/08 21:44:51.18
>>578
if you use 12.x, on vendors.
if you use 2.0.x on libs.

582:nobodyさん
12/02/09 13:37:44.09
フォームヘルパーの使い方について質問です。

○商品A   ○商品B
■■■    ■■■

○がラジオボタンで、■が商品の画像だとします。
フォームヘルパーのoptionsに配列で選択肢を指定したら
横並びの入力項目が出来るので、
画像付きのこういった表現が出来ません。
どうすればいいのでしょうか?

583:nobodyさん
12/02/09 14:57:42.21
>>582
配列で一気にラジオボタン出すんじゃなくて、別々に出せばいいんじゃないの

584:nobodyさん
12/02/09 16:32:37.53
>>583
いけました。仕様を勘違いしていました。ありがとうございます。

585:nobodyさん
12/02/10 12:20:32.03
質問です
pagenatorのhasNextのような関数を、コントローラー内で呼ぶにはどうすれば良いですか?
ぐぐってもビューでヘルパーを呼び出す方法しか出てきません
コントローラー内で、次のページがあるかどうかで分岐する処理が書きたいです

1.3です

586:nobodyさん
12/02/10 18:01:43.96
質問です

cakephp2.0.6 php5.3.6 apache2.2.17
という環境でcakephpをインストールし接続してみたのですが

Missing Method in AppController

Error: The action webroot is not defined in controller AppController

Error: Create AppController::webroot() in file: app\Controller\AppController.php.

このような文がでて接続がうまくいきません。どなたかご教授お願いします。

(cakephp1.3だとちゃんとRelease Notes for CakePHP 1.3.14に表示されます。)

587:nobodyさん
12/02/10 18:21:21.51
エラーメッセージを良く読め

588:nobodyさん
12/02/10 18:52:31.16
>>587
すみません、いろいろとググったのですがみつからず困ってました。

AppControllerにアクションwebrootがみつからない
ファイルapp\Controller\AppController.php作ってwebroot()を作れ

っと言われてると思うのですが、実際に作るとphpでのエラーがでてしまいます。

Fatal error: Class 'AppController' not found

申し訳ありませんが、ヒント頂ければと思います。

589:nobodyさん
12/02/10 20:19:58.49
>>588
app\Controller\AppController.php
には正確にはどう書いた?

とうか、そもそも、どういうディレクトリにインストールして
どこにアクセスしてる?

590:nobodyさん
12/02/10 20:55:32.66
httpd.confの設定がおかしいと想像。

document rootと、http側のrootが一致してないと見た。

591:nobodyさん
12/02/10 21:02:16.73
webrootが正常に読み込めてないな。
そのあとのエラー的に、>>590の言うとおりパスがおかしいんじゃないかと。
あとhttpd.conf内でmod_rewriteは設定してるよな?
まずはhttpdの設定を見直すよろし。

592:nobodyさん
12/02/10 21:02:49.14
>>589

中には表示されていた
<?php
class AppController extends AppController {
public function webroot() {
}
}

?>←これはなかったので付け足しました

と書きました
ディレクトリはC:\Users\fruit\Desktop\www\sns\cake\2.0\app\Controller\AppController.phpに保存しています
アクセス先はURLリンク(localhost)です

URLリンク(localhost)でのアクセスだとIndex of /php/cake/2.0/app/webrootになってしまいます。

またapacheには
<Directory "C:\Users\fruit\Desktop\www\php\cake">
AllowOverride All
</Directory>
と記述してあります。


どうでしょうか、よろしくお願い致します。

593:nobodyさん
12/02/10 21:04:40.72
>>591

mod_rewriteの設定ですが#ははずしてあります。

594:nobodyさん
12/02/10 21:06:52.99
ごめんさい記述みすしていました

正確には
ディレクトリはC:\Users\fruit\Desktop\www\php\cake\2.0\app\Controller\AppController.phpに保存しています

でした 。wwwをlocalhostとしています。

595:nobodyさん
12/02/10 21:13:17.18
>?>←これはなかったので付け足しました
php.iniで、それの有無に関しての挙動が変更できる。

現在のPHPのデフォルトは、「閉じタグ ?> が無い事が標準」となってる。

初学者なのは分かるけど、いきなりフレームワークに手に入れるとか愚の骨頂。
どれだけの人数がテストしてると思ってるの?

596:nobodyさん
12/02/10 21:26:19.60
>>595
そうだったんですね。初めて知りました!
ありがとうございます。

597:nobodyさん
12/02/10 21:37:46.65
>>589,590,591

一通りhttpd.confをみなおし、ルートも確認し
>>595のとおり?>もはずしてみましたがやはり直りませんでした。

どなたかわかりそうな方いましたら、よろしくお願い致します。

598:nobodyさん
12/02/10 22:18:06.68
>>597
ルートを確認したっていうことだけど、
httpd.conのDocumentRootはどう書いてあるの?

599:nobodyさん
12/02/10 22:22:19.33
>>598
DocumentRoot "C:/Users/fruit/Desktop/www"
<Directory "C:/Users/fruit/Desktop/www">

このように設定してあります。

600:nobodyさん
12/02/10 22:31:07.86
脱線だが、デスクトップにファイル置いて開発するとか、みんなそうしてるの?
アクセス権限とか切り分けが面倒になるから、俺はドライブルートから
浅い所にファイルを置くんだが。


601:nobodyさん
12/02/10 22:40:32.26
>>600
俺はMac使ってるけど
cake本体は /Library/ の中、appは /Users/俺/ウェブ開発/○○アプリ って感じ。
jquery関係とかよく使うアセットはcake本体側に入れとけば複数app作るの楽だし

602:nobodyさん
12/02/10 23:53:22.09
>>599
・http.confにOptions FollowSymLinksの指定がしてあるか
・そもそもmod_rewriteはLoad Moduleされてるのか
・apacheのエラーログ確認
・各.htaccessにrewrite baseの設定が要るかも?

603:nobodyさん
12/02/11 00:17:43.73
>>600
ふつうはしない。
が、初心者はだいたいそうする。

604:nobodyさん
12/02/11 00:55:37.73
どなたか>>585お願いします

605:nobodyさん
12/02/11 02:53:33.10
>>604
ヘルパーはApp::importで読み込んでnewすれば使えるけど、
わざわざ呼ばんでも
debug($this->paginate)とかdebug($this->params)とかやったらなんかヒントあるんじゃね?

606:nobodyさん
12/02/11 08:51:11.48
>>602
Options FollowSymLinksは記述してためしてもAppController.phpのエラーが返ってきます。

Load Moduleはしてあります

apacheのエラーは
[Sat Feb 11 08:43:04 2012] [error] [client 127.0.0.1] PHP Fatal error: Class 'AppController' not found in C:\\Users\\fruit\\Desktop\\www\\php\\cake\\2.0\\app\\Controller\\AppController.php on line 2
となっていてブラウザ上でみるphpエラーと同様になってます

rewrite baseを設定してみたらcssが読み込まれなくなりました

607:nobodyさん
12/02/11 13:31:36.87
>>606
携帯からなんで詳しい設定名わからんけど、
index.phpをインデクスファイルとして読み込む設定になってないんじゃないの

608:nobodyさん
12/02/13 23:59:06.34
1.3でjoinしているカラムをソートするにはどうすればいいのでしょうか?
$paginator->sort('投稿数', 'Post.total_num')

みたいにビューに書いてもソートされません。

609:608
12/02/14 00:16:33.57
自己レスです。virtualFields使えば出来ました。
今まで使い方を理解してませんでしたが、
$this->User->virtualFields = array(
'total_num' => 'COUNT(Post.user_id)'
);

みたいにすればいいんですね。

610:nobodyさん
12/02/14 03:08:29.79
CakePHPかRubyOnRailsを習得するなら
どちらを優先的にすべきですか?

RORのほうはサーバーの構築からが必要だったりでお気軽感覚では出来ず導入のための敷居は高い気がします。
しかし、Deviseというプラグインがあったりするので、いちいちユーザー登録や、ユーザー管理、ログイン管理の機能を作らなくても済んだりします。

一方でCakePHPなら未だに情報交換が活発になされてますし、あまり環境にこだわらずフォルダごと、ぶちこめば大抵うごいてくれます(データベース設定やパーミッション等はありますが)


両方出来る人とかに聞きたいのですが、どちらがオススメですか?

611:nobodyさん
12/02/14 03:20:43.81
趣味か仕事かどっちだ?

612:nobodyさん
12/02/14 03:29:17.24
仕事で使うならこれからはCodeigniterだよねやっぱり

613:nobodyさん
12/02/14 03:51:01.11
今からCake覚えて何かいいことあんの?

614:nobodyさん
12/02/14 10:42:41.43
>>610
好きな方か、仕事で教えてくれる環境にある方。
ぶっちゃけやることは変わらん。

615:nobodyさん
12/02/14 15:53:13.31 XKQCpFOZ
CakePhp2.0初心者で勉強しています。
セッションを使用して、異なるコントローラー間でデータの受け渡しを行いたいのですができません。
使用方法が間違っているのでしょうか?

異なるコントローラー間で以下の2行を実行しています。
$this->Session->write('id','hogehoge');
$hoge = $this->Session->read('id');


core.phpのセッション設定は以下の設定です。

Configure::write('Session', array(
'defaults' => 'php'
));


616:nobodyさん
12/02/14 17:04:00.93
>>615
上の一行をあるコントローラでやって、
下の一行を違うコントローラでやってると言う意味だよね?

まず下の一行を実行する前に

if($this->Session->check('id))
でセッション変数自体が存在しているか確認するのはやってみた?

617:615
12/02/14 17:37:28.16
>>616
返信ありがとうございます。
windows環境で作成をしてて、なぜかPCを再起動したら取得できましたm(_ _)m ナゾです・・ 

618:nobodyさん
12/02/14 23:58:24.06
>>611
趣味ですが
仕事にも将来的には生かせればと思います

619:nobodyさん
12/02/17 14:11:59.26
index.phpからcakeにアクセスするだけじゃなくて、
別名を付けたファイル名からアクセスしたい場合、
ファイル内に $_GET['url'] = '/user/index' みたいに書けば良いだけですかね?
表向きはピュアPHPみたいなURLにしたいです。

620:nobodyさん
12/02/17 14:33:54.66
>>619
意味が分からん。

foobar_controller.php
foobar_index.ctp
foobar_alt_index.ctp

URLとファイル名は必ずしも強固に1体1対応で無くてもいいんだよ。
render('ctpファイル名')でいくらでも描画先変えられるし、redirectでもいい。

特定のURLのみ、URLのファイル名とは異なるctpファイルを読み込みたい場合は、
controller側でfunction URL名(ファイル名)を作ればいくらでも好きなファイルをrender出来る。

621:nobodyさん
12/02/17 14:47:34.93
>>620
そうじゃなくて、基本的にcakeにアクセスするのって
webtoor内のindex.phpと.htaccessを元にしてるじゃないですか?
それを通さないで、単体のファイルで動かしたいって事です。

622:nobodyさん
12/02/17 14:50:28.33
勝手に動かせばいい

623:nobodyさん
12/02/17 22:15:37.39
>>618
cakephp覚えたところで仕事無し
railsならあるぞ

624:nobodyさん
12/02/17 22:18:17.74 /liskI/Y
>>623
あなたはないかもしれないが、こちらは一杯あるよ

625:nobodyさん
12/02/17 23:19:48.84
railsの仕事なんて見たことないな
たまたまだろうけど

626:nobodyさん
12/02/17 23:35:34.41
cakephpにはrailsのdeviseのような
痒いところに手が届くログイン管理プラグインが無いのが痛い

627:nobodyさん
12/02/18 00:41:23.45
無かったら作ればいいじゃない

628:nobodyさん
12/02/18 07:14:15.10
>>621
webroot直下に置いたhtmlファイルとか、好き勝手に動かせるよ。

webroot/phpmyadmin
とかを本番機で動かしてるし。

ここでhtmlなり、ctpなり、好きなファイル置けばいいのでは?

629:nobodyさん
12/02/18 11:05:37.21
今更のcakeの仕事って、メンテばかりでつまらなそうだな。

630:nobodyさん
12/02/18 11:52:58.83
仕事がつまらないのは当たり前だろ
楽しさを求める奴って一定の割合でいるけど何なの?世間ナメてるの?

631:nobodyさん
12/02/18 14:10:48.45
世間w世の中w

632:nobodyさん
12/02/18 14:15:16.70
>>630
俺は楽しいけど
まぁ自営だし

633:nobodyさん
12/02/18 19:32:45.39
仕事がつまらないとか言ってる人って、アルバイトしかした事ない学生か、本気で仕事した事ないダメ人間だけだろ。

634:nobodyさん
12/02/18 19:52:11.24
『整備に当る強兵が しっかりやって 来てくれと 愛機に祈る 親心』

戦闘機とは勝手が違うかもしれんが、職人であり整備士でもあるウェブ開発者が『メンテつまらない』なんて、間違っても言えない言葉だと思うがな。
作品に対する愛着と言うか、親心はないのかと思う。

635:nobodyさん
12/02/18 19:54:15.84
本気だろうが何だろうがつまらんものはつまらん
愛があってもつまらんものはつまらん

636:nobodyさん
12/02/18 19:54:39.40
愛着や親心と楽しさは違うだろ

637:nobodyさん
12/02/18 20:03:42.12
>>636
「自分の子供は糞までかわいい」って話じゃね?
子供の世話とバグ取りや保守作業って同じ感覚でやってたわ
むろんどっちも楽しい。
しかもメンテっつーか仕事なら、やっただけ対価までもらえるんだぞ?
毎日wktkしとるわw

638:nobodyさん
12/02/18 22:23:06.59
1から作ったものなら良いかもしれんが
他人が作ったものの尻拭いはごめんだ

639:nobodyさん
12/02/18 23:12:25.71
別にどの業界だってメンテはメンテナーがいるわけよ。
ビルだって自動車だってそうだろ。
仕事として受けたならメンテのプロとしてやらないと。面白くないべ。

640:nobodyさん
12/02/19 00:03:12.80
普通にバイトでも楽しいけどな。
楽しくいないのは店長や客が嫌な奴だったとか
人間関係の面がほとんどだろ。

641:nobodyさん
12/02/19 00:21:41.04
今スマホ開発やっててWebAPIをCakePHP使ってんだけど楽しいよ。
俺は仕事は楽しくなくちゃ嫌だわ。

642:sage
12/02/19 00:25:24.87
CakeやろうがRailsやろうがDjangoやろうが同じ不満をもらすだろうな

643:nobodyさん
12/02/19 09:24:53.81
CAKEPHP1.3でWEBアプリを作っています。

ブラウザの「戻る」ボタンを押して前の画面に戻る際に、
必ずサーバーに問い合わせるようにしたいのですが、
キャッシュの設定を「session_cache_limiter('nocache')」にしていても
「ページの有効期限切れ」が表示される場合があります。
(具体的には、画面遷移時に一度入力チェックでエラーを表示した後、
次画面に遷移し、ブラウザの戻るボタンを押した場合。)

「ページの有効期限切れ」が表示されず、前画面に戻るには
どのような対応が必要でしょうか。
(ページの有効期限切れは、具体的に何を見て判定しているのでしょうか)

644:nobodyさん
12/02/19 14:32:18.81
URLリンク(mwg.jp)

645:nobodyさん
12/02/19 22:02:58.12
>>642
そういうことだろうな。
仕事でも趣味でも、開発すること自体楽しけりゃ不平不満なんて出ないどころか毎日Happyさね。

>>643
一般的に考えれば、フォーム(hiddenも含む)データじゃね?
単純な話で、なんかページ同士のパラメータの受け渡しに失敗してるんじゃないかな?

646:nobodyさん
12/02/20 07:49:45.77
>>643
cakeのセッション設定
既出

647:nobodyさん
12/02/20 13:39:28.34
みなさんはサイトの一部だけcakeを使う場合、どうしてますか?

例えばサイトのほとんどがHTMLなんだけど、
お問い合わせフォームとか新着情報の表示とかシステム化が
必要な箇所ってありますよね?

648:nobodyさん
12/02/20 16:42:43.00
公式の1.3パッケージをクリックして落ちてくるのって2.0なのかよ
おかげで数時間ムダにしたわ…

649:nobodyさん
12/02/20 17:31:52.64
cakePHPで使うDBにNOT NULL付けるのって非推奨なのでしょうか?
値セットしてないカラムも全部NULLになっちゃって。

650:nobodyさん
12/02/20 18:44:49.57
Model::create(false)でデフォルト値があるカラムを充足しなくなるよ

651:nobodyさん
12/02/20 19:27:11.23
>>650
どうもです。ぐぐったら解説も出てきました。
URLリンク(d.hatena.ne.jp)

$data初期化してるのにヘンテコな値が入るので???になってたんですが、
よく考えたらモデルの方も初期化せなあかんのですね。

652:nobodyさん
12/02/20 19:44:33.38
個人的には「NULL撲滅委員会」にお誘いしたい。
COUNT(column)とかで、面倒な挙動が多い・

653:nobodyさん
12/02/20 20:16:24.86
>>652
実は既にあすこの会員でして・・・
しかし、NULLを避けたいのにcakePHPが勝手に挿入するのを避けられないというー-;

for ($x = 0; $x < 100; $x++) {
$data = null;
$this->cookie->create(false);
$data = $this->cookie->findById($x);
if ($data == FALSE) {
continue;
}
レコードが存在しない時は処理をスキップしたいんですけど、
比較式おかしいですかね?

654:nobodyさん
12/02/21 00:21:24.73
CakePHPを複合主キーに対応させる為のプラグインってありませんか?

655:nobodyさん
12/02/21 13:06:27.12
2.1RC来たね。

RCの後に数字がないってことは、
次がもう正規リリースなのかな?

656:nobodyさん
12/02/21 14:08:16.13
何が変わったの?

657:nobodyさん
12/02/21 19:27:57.09
ビューの継承とか、細かい便利機能が増えてるっぽい

658:nobodyさん
12/02/21 21:15:24.57
参考書が1.3だったのでとりあえず1.3使ってるんだけど、
できれば最新のもの使ったほうがウマイのでしょか?

659:nobodyさん
12/02/21 22:01:38.94
>>658
新規で作るのなら2系で作っておいた方がいいと思うよ
1.3で作ってると下手に1.3のクセがつくだろうし
今勉強中ならRCも出たことだし、サービスリリースまでにはstable出るだろうから2.1使っちゃっていいんじゃない

660:nobodyさん
12/02/21 22:21:52.98
お前ら>>654の回答頼むわ。な?

661:nobodyさん
12/02/21 22:26:00.87
>>659
そうですかー・・

URLリンク(book.cakephp.org)
変更点相当あるみたいですね。

後から変えたくなっても不便だし、
1.3じゃなきゃいけないような理由もないし、
早いとこ乗り換えたほうが良さそうですね。
2.1落としてきます。

662:nobodyさん
12/02/21 22:28:23.70
でも2系の情報はまだまだ少ないよ?
俺の見立てでは後1年は情報や書籍は揃わないと思う

663:nobodyさん
12/02/21 22:45:13.49
>>662
むむむむ・・
まぁやってみようと思います

困るかな
実際移行してる人はどんな感想をお持ちだろうか

664:659
12/02/21 23:19:39.41
>>663
今までのプロジェクトは全部1.xで作ってきたけど、最近全部1.3.14に上げた
とりあえずそれらは2系に上げる予定無し(1.3から2.0への全面書き換えはだるいのでしばらくは放置すると思う)
2.0のstableが出てからは全部2.0で作ってる
>>659にも書いたけど、RC出たからもう2.1に移ろうかと思ってる

個人的には複雑なことをやってないせいもあるのか2.0の情報が少ないという感じはない
昔からcakeは「公式ドキュメント読んで分からなかったらソースを読め」ってスタンスだしね
ああ、でも公式ドキュメントはまだ日本語ないから英語が全く出来ないとちょっときついか

665:nobodyさん
12/02/22 00:24:37.21
お前ら>>654の回答頼むわ。な?

666:nobodyさん
12/02/22 01:12:36.89
ありません。な?

667:nobodyさん
12/02/22 01:34:03.12
このスレに質問書き込んで、回答が得られたことってないな
お前ら頼りなさすぎ

668:nobodyさん
12/02/22 09:23:59.33
Yiiスレとのギャップがすごい。

669:nobodyさん
12/02/22 10:44:07.07
2.0使いです。
updateAllで、
リレーション設定をしている他モデルで使用しているテーブルのデータを
保存することはできませんか?

Bコントローラ内
$condition = array('ModelA.neko' => 'mike');
$updatefield = array('ModelA.tag' => 'hoge');
$this->ModelB->updateAll($updatefield, $condition);

と書いても
General error: 1 near ".": syntax error
が出ます。

670:nobodyさん
12/02/22 13:47:15.70
>>667
と言うより、2.0については使用者も少なく回答できないんじゃないか?
1.3系の質問は回答されてるし。

頼りないなら他行けば良いんだよ。別に質問スレでもないんだから。

671:nobodyさん
12/02/22 18:20:43.51
システムのマイナーバージョンアップってcake以下(2.0だとlib)のコアファイル差し替えるだけでいいの?

672:nobodyさん
12/02/22 20:21:09.89
すみません、質問です

2つの関連性の全くないテーブルA,Bがあります。
ある画面で、その2つのテーブルのデータをまとめて編集し、
1回のPOSTでValidationをかけて保存させたいのですが、
どうすればよいものでしょうか?

A,Bの項目をまとめたCモデルを作って、CモデルにValidationルールを書く。
POSTされたデータはCモデルでValidationを行う。
Validation後にAモデル、Bモデルにデータを分割して、それぞれで保存処理を行う。

こんな感じ?

673:nobodyさん
12/02/22 20:46:24.93
よくわからんが、普通はAモデルはAモデルでバリデーションし、
BモデルはBモデルでバリデーションするだろ?
モデル毎にバリデーションできるんだから。

674:nobodyさん
12/02/22 20:46:51.25
>>672
普通に

Aバリデーション
 ↓
Bバリデーション
 ↓
A保存
 ↓
B保存

ではなんでダメなの?

675:nobodyさん
12/02/22 21:06:14.46
あとはトランザクション処理をかますくらいか。

676:nobodyさん
12/02/22 22:53:27.87
>>671
それでOKだよ

677:nobodyさん
12/02/22 22:58:29.26
>>672
1回のPOSTで2つのモデルをいっぺんに使うって話か?
普通に問題なくできそうなもんだが。

678:nobodyさん
12/02/22 23:12:01.66
>>664
ありがとり
一応一通り移し変えることができました
ガシガシ構築していこうと思います

679:nobodyさん
12/02/22 23:46:18.16
>>676
ありがトン

680:nobodyさん
12/02/23 15:41:37.63
CakePHPの1.2のメンテナンス期限とか、公式な発表ってどこかにありますか?

681:nobodyさん
12/02/23 16:23:25.15
>>655
本家だと数字ついてないけど日本のサイトだと1版って書いてあるから微妙だなw

>>680
公式な発表はないと思うけど、もうリリースがほとんど止まってる感じだからなあ・・・
っていうか1.1はいつのまにか公式から消えてるけどどこかでアナウンスあったっけ?

682:nobodyさん
12/02/23 22:30:09.21
そんなことよりCakePHPを複合主キーに対応させる方法を教えろよ。な?

683:nobodyさん
12/02/23 22:38:03.57
複合キーなんて使うなよw

684:nobodyさん
12/02/23 22:40:40.54 7dkJC+lD
bar_controllerに、foosテーブルの中身をページネイションさせるとき
$this->paginate = array(
'conditions' => array(
"not" => array(
"Foo.bar" => "false"
)
),
'limit' => 2000,
'order' => array('Foo.date DESC')
);
$this->set('foo', $this->paginator());
と書いたら、「barsテーブルにFoo.barなんてない」ってエラーがでました
コントローラ名からモデルを補完してるんでしょうか?
どうしたらfoosテーブルのデータをページネイションできますか?
ご教示くださいますようよろしくお願いいたします

685:nobodyさん
12/02/23 23:41:08.20 7dkJC+lD
$this->set('foo', $this->paginator());

$this->set('foo', $this->paginate('Foo'));
に書き換えたらいけました

686:nobodyさん
12/02/24 04:00:19.56
モデルにprimaryKeyって必ず定義しないと行けないんですね。
プライマリーキーがないモデルにsaveしようとしたけど、エラー出ました。

687:nobodyさん
12/02/24 09:30:06.44
>>686
Excelとデータベースの違いから勉強しようぜ

688:nobodyさん
12/02/24 12:24:37.97
会員→日記
   →写真

のようなアソシエーションで繋がっているテーブルがあったとして、
会員情報を削除した時、その会員が投稿した日記や写真を
削除する必要があります。

その場合、会員情報を削除した後、日記・写真を削除しますか?
それとも全てアソシエーションで繋げてdeleteAllで削除しますか?

689:nobodyさん
12/02/24 13:26:33.24
>>688
好きにすればいいんじゃね
deleteAllがアソシエーション含んだ削除って誤解してる気がするんだけど気のせい?

690:nobodyさん
12/02/24 13:56:47.10
関連データも一括で削除するのはdependentだよね

691:nobodyさん
12/02/24 14:01:26.76
>>689-690
まさに勘違いしてました・・。

アソシエーションの削除が上手く行かないので
自分は個別に削除するやり方をしているのですが、
勘違いだったようです。すみません。


692:nobodyさん
12/02/24 19:09:30.64
XMLデータの出力って、CakePHP 2.0でどのように行えますか?

find('all')で複数県取得したデータを、1.3まではviewで$xml->serialize()に
データを渡していました。
2.0からはxmlHelper自体が廃止となって、代わりにXml::buildを使えとのことですが、
1.3と同様の複数県のデータを渡すと例外となります。

1.3と同様の結果が取得できるように死体のですが・・・

693:nobodyさん
12/02/24 19:10:11.66
すみません、複数県→複数件です。

694:nobodyさん
12/02/25 15:36:54.21
cake1.3を最近使い始めたのですが、
データベースを使うほどじゃない簡単なデータ保存処理のためにtxtファイルを読み書きしたいのですが、どこに置いてもうまくアクセスできません。
自分で用意したファイルにアクセスするにはどうしたらいいのですか?

695:nobodyさん
12/02/25 16:53:26.47
データベースを使うほどじゃなかったら、cake使わない方が良いよ

696:nobodyさん
12/02/25 17:03:08.52
テキストファイルのデータを読み込みたいのがデータベースから情報を持ってきてるページなのでそういうわけにもいかないのです・・・
テキストファイル自体は多くて10個程度のワードを保存&編集したいだけなのですが・・・

697:nobodyさん
12/02/25 17:25:39.89
Cakeが発行する、SELECT COUNT(*) (ページネーションから?)が
ものすごい遅いんですが、解決法はあります?
みなさんどうしてます?

698:nobodyさん
12/02/25 17:33:00.25
COUNTするのはgroup指定したカラムにすれば良いよ

699:nobodyさん
12/02/25 17:52:58.99
>>698
ページネーションするときって自動でCOUNT発行されません?

700:nobodyさん
12/02/25 18:04:29.58
>>694
自分で、model、またはdata sourceを書く。
csvならdata sourceあった希ガス

701:nobodyさん
12/02/25 18:05:54.56
>>700
ありがとうございます
まずはdata sourceにつ

702:nobodyさん
12/02/25 18:06:37.16
途中で送信すみませんorz

>>700
ありがとうございます
まずはdata sourceについて勉強してみます

703:nobodyさん
12/02/25 18:19:28.48
>>702
ベタに書いてもOKな気もすっけど。。
とりあえず、Fileクラスもあるし。

704:nobodyさん
12/02/25 18:21:48.77
>>703
のちのちワードを編集するので、直書きはできないんです
fileクラスについても調べてみます

705:nobodyさん
12/02/25 22:48:10.62
1.3.14を使っています。フォームのバリデーションで質問です。
ラジオボタンの場合、項目を選択せずに送信すると
空データではなく、存在しないものとして扱われます。

ですので、バリデーションルールでnotEmptyを指定しても
正しく機能しないのですが、どうすればいいのでしょうか?

706:nobodyさん
12/02/26 13:38:17.41
hidden

707:nobodyさん
12/02/26 14:15:41.40
156

708:nobodyさん
12/02/26 16:50:00.76
>>706
ありがとうございます。勉強になりました。

709:nobodyさん
12/02/27 01:32:01.91
>>697
Model::paginateCount を 軽い処理で実装するとか


710:nobodyさん
12/02/28 11:46:10.73
>>697
where句に使用しているカラムにインデックスはるとか、
joinしてるなら、その辺も確認したほうがいい。


711:nobodyさん
12/02/28 15:16:02.31 pz8Lp3oa
[動作環境]CakePHP 2.0.6 / PHP 5.1.6 / Apache 2.2

ルーティングで躓いています。
以下のようなコントローラを用意しました。

class EntryController extends AppController {

var $name = "Entry";
var $autoRender = false;

function index(){
die('index');
}

function success(){
die('success');
}
}

URLリンク(example.com)
は正しく実行され、'index'が表示されるのですが、
URLリンク(example.com)
は、Segmentation faultが発生し、Abortします。

routes.php などの設定は、敢えて変更せず使用しています。
同じような現象を経験した方、いらっしゃいますか?(そもそも、2.0.6使っている人いるんだろうか)


712:nobodyさん
12/02/28 15:21:47.73
success以外でも一緒?
また、URLリンク(example.com) は表示される?

713:nobodyさん
12/02/28 15:25:44.20 pz8Lp3oa
>> 712
success以外でも一緒です。
/entry/index もダメです。
/entry/index/abc/def もダメです。

714:nobodyさん
12/02/28 16:50:04.76
>>711 です。

Router::parse($request->url);
の結果を見ると、以下のようにルーティングが間違っているようです。
array(5) { ["controller"]=> string(7) "success" ["named"]=> array(0) { } ["pass"]=> array(0) { } ["action"]=> string(5) "index" ["plugin"]=> NULL }
Routerがちょっと怪しいので、調べてみます。

715:nobodyさん
12/02/28 17:13:46.37
>711 です。
/lib/Cake/Network/CakeRequest.php に、おかしな箇所を見つけました。
下記引用の下から5行目、「$baseUrl」なんですが、どこでも宣言されていないのでif自体に意味がないようです。


protected function _base() {
$dir = $webroot = null;
$config = Configure::read('App');
extract($config);

if (!isset($base)) {
$base = $this->base;
}
if ($base !== false) {
$this->webroot = $base . '/';
return $this->base = $base;
}

if (!$baseUrl) {

//★ここを改編したらうまくいった
//$base = dirname(env('PHP_SELF'));
$base = '';


716:nobodyさん
12/02/28 21:52:15.32
>>715
ソース見てみたけど確かに$baseUrlはどこでも値が入ってないね

717:nobodyさん
12/02/29 02:33:19.83
1.3系でプラグインの作成方法について質問します。

公式のマニュアルを見ているのですが、
/pizza/pizzaOrders/index
でアクセスする方法は分かるのですが、
/pizza/
でアクセスするにはどうしたら良いのでしょうか?

普通に/app/controllers/pizza_controller.phpを作ればいいと思ったのですが、
作ってもアクセスエラーになります。
これってルーティングの設定になるのでしょうか?

718:nobodyさん
12/02/29 08:54:37.66
>>709
1000件しか表示しない!って決めたら、
function paginateCount($conditions = null, $recursive = 0, $extra = array()) {
  return 1000;
}
こうしてもいいんですかね?

719:nobodyさん
12/02/29 15:57:45.32 OuUO3AKR
>>717
プラグイン関係ない
ルーティングの問題

720:nobodyさん
12/02/29 16:49:35.18
>>719
了解しました。ルーティングで調節します。

721:nobodyさん
12/02/29 21:04:59.32
>>717
/app/plugin/pizza/controllers/pizza_controller.php
(要するにプラグイン名と同名のコントローラー)を作って、indexアクションを作れば
ルーター触らなくても/pizza/でアクセス可能だよ。

722:nobodyさん
12/02/29 21:19:59.68
>>721
出来ました!勉強になります。ありがとうございました

723:nobodyさん
12/03/01 05:51:29.65
モデルって別にテーブル名じゃなくても良いんだね
同じのでもサイトのコンテンツによって変えてる

724:nobodyさん
12/03/05 10:09:01.94
2.1 Stableキター
つうかペース早いな

725:nobodyさん
12/03/05 19:23:27.93
うおおおお
公式サイトも変わってCookBookもなんか綺麗になったー

マイグレーションガイドによると.htaccessの変更が必要という、
アップグレード時に見落としがちな変更があるのにリリース文では触れられてないな・・・
URLリンク(book.cakephp.org)
URLリンク(bakery.cakephp.org)

726:nobodyさん
12/03/05 20:11:55.24
まだ開発中なんだけど、バージョアップすべきなのかな?

727:nobodyさん
12/03/05 20:59:06.49
リリースしてないならageた方がいいと思う
2.0.xは今までのバージョン系列で一番寿命が短いし、下手したら1.3.xより今後のアップデートが期待できない気がする

728:nobodyさん
12/03/05 23:06:32.47
>>727
ありがとう。
2.0.x系からならフレームワーク置き換えだけでいいのかな。


729:nobodyさん
12/03/05 23:42:52.00 WIGrArNU
>>728
自分の一つ上のレスも見ようぜ!

730:nobodyさん
12/03/06 01:02:47.42
次の開発案件から2.0系にしようとしてたら、もう2.1・・・。
2.0系は結局書籍も出ずじまいか。

731:nobodyさん
12/03/06 03:40:14.04
互換性をきっちりしてくれないと困るにょ

732:nobodyさん
12/03/06 21:43:10.65
>>727
ありがとう。
出来ました(゚ω゚)

733:nobodyさん
12/03/06 22:01:24.25
2.0リリースが10月半ばだったから5ヶ月経たずに2.1出たのか
2.0は短命だったね・・・
本が出ないのもしょうが無いというか、出してしまっていたらすごい中途半端なタイミングになっていたと思う


1.2 2008/12
1.3 2010/04
2.0 2011/10
2.1 2012/03

734:nobodyさん
12/03/06 23:43:25.94
Cakeにcreate tableする関数はありますか?
普通にqueryでベタSQL投げないと駄目?

735:nobodyさん
12/03/07 18:16:47.78
お前らなんか言えよ

736:nobodyさん
12/03/07 22:24:25.29
お前らがcakeで作ったもので、何を最大どのくらいの期間かかった?
俺はSNSで3ヶ月。

737:nobodyさん
12/03/08 08:15:28.96
官公庁のシステム
2ヶ月3000万円

738:nobodyさん
12/03/08 09:50:17.49
>>737
まじかよ。
あぁいう国の案件はどうやって仕事もらうの?

みんなやりたいよね。

739:nobodyさん
12/03/08 10:16:55.80
てか、2ヶ月って凄いな。
国のシステムだからそんなに凝ったことはしてないだろうけど、
どんな機能があって2ヶ月なんだろ?



740:nobodyさん
12/03/09 11:27:56.60
犯罪の香りがする

741:nobodyさん
12/03/09 11:43:23.36
随意契約くさいな

742:nobodyさん
12/03/09 12:57:11.13
2.0から始めたいのにマニュアルが英語しかないとかwww

743:nobodyさん
12/03/09 13:13:11.92
英語英語うるせーよ、このスレ小卒ばっかりか?

744:nobodyさん
12/03/09 14:27:27.18
お前は英語で書けよ

745:nobodyさん
12/03/09 16:18:01.14
speak english or die

746:nobodyさん
12/03/09 16:24:51.22
shine!

747:nobodyさん
12/03/09 16:51:22.89
dieとかwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
エイリアス使ってるバカってまだいたんだwwwwwwwwwwww

748:nobodyさん
12/03/09 16:54:34.34
fack you!

749:nobodyさん
12/03/09 17:40:19.41
OUTA MY WAY, WTF!!!!!!!!!!

750:nobodyさん
12/03/09 17:54:30.33
アソシエーションするとき、プライマリキー以外とforeignKeyで
繋げるにはどうすればいいのでしょうか?

751:nobodyさん
12/03/11 02:18:22.14
そんなことより誰か複合主キーに対応するためのプラグインを書けよ。な?

752:nobodyさん
12/03/11 10:46:34.94
ビュー内の$this->Paginator->prev()とかnumbers()で吐き出されるリンクに
PHPSESSIDをくっつけたい(?PHPSESSID=hoge)んだけど、どうしたらいいかな

コアの$html->link()を書き換えたりしたらいけそうだけど、
もっとスマートな方法ある?

753:nobodyさん
12/03/11 11:29:49.63
>>752
自己解決
'options' =>
array(
'?' => array(session_name() => $this->Session->id())
)
こうした

754:nobodyさん
12/03/11 16:36:31.78
ソース追ったけどよくわからなかったので質問します。
CakePHPでのCookieを書き込む際に暗号化したデータをJavaScriptで復号するロジックはありますか?


755:nobodyさん
12/03/11 22:15:13.63 +TvrXerP
うるせぇ!
いいからCakePHPで複合主キーに対応する為のプラグインを誰か書けや。
な?

756:nobodyさん
12/03/11 23:31:02.18
>>754
ソース見る限り、Security::$typeで設定した暗号方式でSecurity.salt使って
それをbase64_encodeして暗号化してるっぽいので
それを逆に処理すればJavascriptでも復号化できると思う。
詳しくはcookie componentのソース見て。

だけど、複合に必要なキーのSecurity.saltをJavascriptに
書かないといけないので、そもそもなんで暗号化したんだって
ことになるので設計を見なおしたほうがいい。

757:nobodyさん
12/03/12 00:06:16.05 uEcRtOSh
>>754
老婆心ながら、>>756が言っていることを強調しておく。
設計を見直せ。salt の意味がない。

758:nobodyさん
12/03/12 13:24:30.73
よくある返信不可のメールアドレスって
@以前のユーザ作成してるのかな?noreplyみたいな
存在しないアカウントをreturn-pathに設定してメール送ってるのかな?

759:nobodyさん
12/03/12 16:18:31.39
UI含めて設計について相談です。

複数チェックボックスを使って、チェックした項目をDBに登録し、
後から検索できるようにしたいと思います。疑問は2点。

1:テーブルの1つのカラム内にカンマ区切りで登録するのでしょうか?
2:その場合、conditionsで検索できるのでしょうか?

760:nobodyさん
12/03/12 17:53:27.28
画像のサイズ別のURLって、
テーブルに保存してますか?
afterFindなどで組み立ててますか?
それとも、ビューでその都度組み立ててますか?

761:nobodyさん
12/03/12 18:10:15.80
ビューで変えてます。携帯用の画像とか。

762:nobodyさん
12/03/12 19:45:42.19
>>759
1は好きにしたらいい
2はインデックス当たらなくていいならできる

763:nobodyさん
12/03/12 19:58:56.46
>>762
どうやって検索するのでしょうか?
1カラムにカンマ区切りのレコードがあったとして、
それをCakeのconditionsで検索する方法がわかりません

764:nobodyさん
12/03/12 21:01:20.27
>>763
cakephpに配列をシリアライズして
登録するプラグインあるから、それ使え。

765:nobodyさん
12/03/12 21:33:33.63
わかりました。探してみます

766:nobodyさん
12/03/12 21:53:31.19
>>763
SQLのLIKEはわかってんのかな?

767:nobodyさん
12/03/12 22:27:22.65
小一時間探しましたが、save時にシリアライズできるものの、
find時にconditionsで絞り込むのは無理みたいですね・・。
>>766
はい。それは分かりますが、登録されている値が
「1,10,11」みたいな場合、likeは利かないと思います。

768:nobodyさん
12/03/12 23:32:17.51
>>756
>>757

ありがとうございます。
サーバサイドのJSでの実装を考えているため、種が漏れることはないと考えています。

ご回答/ご指摘ありがとうございました。

769:nobodyさん
12/03/12 23:45:06.08
>>767
ソート順さえあっていれば、1かつ10かつ11なら column LIKE '%1,%10,%11,%' とかでいけるんじゃないの
ソートしてないのなら column LIKE '%1,%' AND column LIKE '%10,%' AND column LIKE '%11,%'

770:nobodyさん
12/03/12 23:58:59.56
>>769
さすがにひどい。

>>767
方法1.「ビット演算 チェックボックス」でぐぐれ。
方法2.項目ごとにカラムを分ける。

771:nobodyさん
12/03/13 02:48:15.55
脆弱性対策は大事だよ
URLリンク(www.1x1.jp)

772:nobodyさん
12/03/13 10:18:36.45
>>767
もっと頭使おうぜ
1,10,11
ではなくて
001,010,011
みたいにすれば、like %001% で検索できるだろ。
あくまで1例だから、データに何がくるかによって
良い実装があると思うので、よく考えて。

773:nobodyさん
12/03/13 12:48:03.37
俺ならHABTMにしちゃうね

774:760
12/03/13 13:20:03.94
>>761
ビューが条件分岐だらけになりませんか?

if (!empty($post['Post']['image_filename']):

....

else:

こんな風に。

$post->getImageUrl(array('mobile' => true));
みたいに書けたらいいんですけどねぇ・・・

775:nobodyさん
12/03/13 13:39:42.66
>>774
Helperつくれば?

776:nobodyさん
12/03/13 13:45:55.38
>>775

そうなんですけど、
モデルの返り値が配列じゃなくてエンティティなら、
もっとスマートに書けるのに、と思いまして・・・

これがCake流なんですかね

777:nobodyさん
12/03/13 13:53:09.13
>>772
その考えはありませんでした。勉強になります!

ビット演算の事を>>770さんから教えていただき勉強しましたが、
数学が苦手な私の頭ではさっぱりで、
単純にテーブルを分ける(Cake的にhasMany)を考えていました。

テーブルを分けて正規化する方法も一般的なようですが、
正直、チェックボックスを使用するカラムが必要な度に
テーブルを生成するのもどうかと思い、悩んでいました。

772さんの方法も視野に入れて設計面を工夫してみます。
みなさん、ありがとうございました。

778:nobodyさん
12/03/13 22:24:16.17
likeなんか使ったらインデックス使えなくて
遅くなるだろw

779:nobodyさん
12/03/13 23:03:53.03
>>776
エンティティが返ってこないのが俺がCakeが嫌いな理由の一つではある。

780:776
12/03/14 03:34:06.02
CakeEntityなんてのもあるみたいですが・・・

今はYiiを調べてる。

781:大便
12/03/15 08:30:03.53 UhuckWxP
ペニー秋田は犯罪です。
早速ペニーオークションで破産しました。

782:nobodyさん
12/03/15 15:50:54.34
>>778
別にLIKE使ったからってインデックス効かなくなるわけじゃないから

783:nobodyさん
12/03/15 16:11:21.14
みなさん、プラグイン作成してます?
お問い合わせフォームとか会員専用ページとか
どのサイトでもよく使うファイルをプラグインにまとめるべきか否か悩みます。

784:nobodyさん
12/03/15 20:50:17.13
>>782
効かなくなるが

785:nobodyさん
12/03/15 21:19:00.56
>>783
どこまで汎用性もたせるか悩んで、
結局いつもコピペで済ませてる


786:nobodyさん
12/03/15 21:56:56.36
ある程度規模でかいサイトで普通のLIKE検索はありえないよね。

787:nobodyさん
12/03/16 00:00:22.47
普通はどうしてるの?

788:nobodyさん
12/03/16 09:41:57.89
>>783
俺はまとめてるよ。
ログイン
リマインダー
新規会員登録
アフィリエイト機能とか。

うまく作れば使いまわし効く。
全部プラグインでやれるから
最近やることなくなった。

789:nobodyさん
12/03/16 10:19:44.39
>>788
それらをプラグイン化して、サイトによってビューを修正する感じ?

790:nobodyさん
12/03/16 10:41:05.32 pS4d35yu
ログイン状態のセッションが数時間で切れて困っています。
ログインすると
$this->Session->write('user',$user_id);
のようにコントローラ内のSessionに情報を保存していますが、これが数時間でread()しても値が取れなくなるようです。


core.php内で
Configure::write('Session.save','cake');
Configure::write('Session.timeout', (24*60*60*7));
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1000);
ini_set('session.cookie_lifetime', (24*60*60*7));
ini_set('session.gc_maxlifetime', (24*60*60*7));

Configure::write('Security.level', 'low');

としているので、1週間持って欲しいのですがダメみたいです。

何か方法はありますでしょうか。







791:nobodyさん
12/03/16 20:57:57.62
>>789
具体的にいうと、
プラグインの中に
ビヘイビアと、コンポーネントを作る。

それをusercontrollerとmodelに読み込ませる感じ。

792:nobodyさん
12/03/16 20:59:06.57
>>790
cookie使えばいいじゃん。
ses切れてても、cookieがあればそれでログインみたい。

793:nobodyさん
12/03/17 00:04:22.68
>>791
なるほど。ビュー周りは特に変更しないんだね。
変更するならCSSをいじるぐらいか。

794:nobodyさん
12/03/17 19:37:12.80
2.x対応のTreeHelperってないですか?
または修正版のサイトとかあれば

795:nobodyさん
12/03/19 15:45:40.35
URLリンク(b.hatena.ne.jp)
これって結局安いの高いの

796:nobodyさん
12/03/19 16:50:34.02
Qdmail(URLリンク(hal456.net))使ってるひといる?
さくらインターネットのメールサーバにQdmail使ってSMTP AUTHでメール送信してるんだけど、
何回か(4,5回が多い)に1回だけメール送れないんだよな

QdSmtp error: No Responce SYSTEM TIME OUT line -> 603
QdSmtp error: getMessage error line -> 543
QdSmtp error: Error From setting line -> 488
QdSmtp error: Send Data Error or Auth Error line -> 415
Qdmail error: Qdmail Version 1.2.6b ,PHP Version 5.2.11
Qdmail error: OS WINNT ; PHP Version 5.2.11 ; Qdmail version 1.2.6b
php.ini status: mb_language = Japanese ; mb_internal_encoding = UTF-8 ; mb_detect_order = ASCII,JIS,UTF-8,EUC-JP,SJIS
Qdmail Status debug: 0, log: 3, errorlog: 0
Qdmail error: No send . Because SMTP mail method replied error line -> 2190
Qdmail error: Send Error line -> 2115
Qdmail error: Error happen, see upper line -> 2194
Qdmail error: Send Error line -> 2115

画面にこんなエラーが吐き出されてメール送信されない。
エラー行だって言われてるところを見てもエラー行を出力する処理しか書いてなくて
どういうエラーが起こったのか全然わからない・・・。

同じような事になった人いないかな?

797:nobodyさん
12/03/19 17:26:02.77
スレ違い

798:nobodyさん
12/03/19 17:27:57.85
>>797
すまん、一応CakePHPのコンポーネントとして使ってるし、
Cake使ってる人でメール送信する人はこれ使ってる人多そうだからここで聞いてみた

PHP質問スレで聞いたが、そこでもスレ違いだとさ・・・。
ライブラリの質問できる場所無いみたいなんだよな

799:nobodyさん
12/03/19 19:02:54.22
>>798
そうじゃなくて、ライブラリ自体、公式でサポートしてるんだから
そっち行けってことっでしょ。エラーメッセージすら読めてないし。
フレームワーク以前の問題だ

800:nobodyさん
12/03/20 05:09:01.21
qdmailって、公式もサポートほとんどしてないだろあれ。
エラーメッセージもいいかげんだし。

801:nobodyさん
12/03/20 09:47:42.67
>>800
わかる。

802:nobodyさん
12/03/20 22:24:51.38
じゃ、qdmail使わずに自作しろよ。
メール送信なんて今まで作っていたのあるだろ。


803:nobodyさん
12/03/20 23:14:24.46
・マルチバイト対応
・HTMLメール
・添付ファイル
こういうの対応しようとすると結構自作でやるのはな、、、

804:nobodyさん
12/03/21 12:11:52.99
いやいや、普通に1000行もかからずコード書けるから。
フレームワーク使う前に作っていたものがあるだろ。それ使えよ。

805:nobodyさん
12/03/21 18:27:13.50
cake使っててシェルでURLを組み立てたいときは何を使えばいいですか?

806:nobodyさん
12/03/21 20:09:46.98
シェルでURLを組み立てたいって意味がわからないんだが

807:nobodyさん
12/03/21 21:31:40.83
>>804
オレオレフレームワークつかっとけよw

808:nobodyさん
12/03/21 23:19:44.62 ZAI6cSPi
$this->set('select', $this->Foo->find('list', array(//select要素
'fields' => array(
'Foo.id',
'Foo.firstname'
)))));
とすると、
$form->select("Foo.bar", array($select), 0, array('empty' => null))

select要素の中に
<option value="Fooのid">Fooのfirstnameの中身</option>
というのができるんですが、
これを
<option value="Fooのid">Fooのsecondnameの中身 Fooのfirstnameの中身</option>
としたいんですが、find('list')は一対でしか使えないんでしょうか?
やり方をご教示いただけたら幸いです

809:808
12/03/21 23:27:53.96 ZAI6cSPi
自己解決しました
allで読んで、
foreach ($select as $value) {
$talent_data[$value['Foo']['id']] = $value['Foo']['secondname'] . ' ' . $value['Foo']['firstname'];
}
$this->set('select', $select);
でlistで作ったoption群と同じ形式のリストデータが生成されました

810:nobodyさん
12/03/22 00:13:00.01
modelにrule=>urlを書いたらurl欄が空欄もurlが正しくないになってしまうんですが、
urlが空でもよくて、入っていれば正しいURLか判定する、という風にするやり方がありましたらお教えください

811:nobodyさん
12/03/22 00:20:23.77
allowEmpty

812:nobodyさん
12/03/22 00:35:14.75
>>811
ありがとうございます、解決できました!

813:nobodyさん
12/03/22 02:02:03.59
>>806
URLをTwitterに投稿するときに使おうと…

814:nobodyさん
12/03/22 10:58:28.03
>>807
煽る意味がわからん。他人のライブラリは使えないと言い、
自分でも自作できないとかワガママすぎるだろ。

815:nobodyさん
12/03/22 19:38:50.77
>>814
先に煽ったのは>>804じゃね
フレームワークスレで、自分で書いたもん使えて

816:nobodyさん
12/03/23 00:01:31.13
おかしくないだろ。なんでも他人を頼ろうとするなよ。
自分でコンポーネントやヘルパー作れるようになってるんだから。

817:nobodyさん
12/03/23 10:24:37.19
up

818:nobodyさん
12/03/23 11:50:45.97
自分で簡単に組める人はここで質問しないだろ。自分が見落としてるだけで、他のいいモジュールがあるのかも?って淡い期待で書き込んでるんだとおもうよ。自分で組むしか方法が無い。っていう結論を貰えるだけでも嬉しいのでは?

819:nobodyさん
12/03/23 13:36:50.00
なにかおかしくね?自分でプログラミングせずに、
いきなりフレームワーク使い出したというのか?
大体は参考書やらネットの情報やらで適当なプログラム作って、
慣れた後に効率化を求めてフレームワークを使い出すと思うんだが。

820:nobodyさん
12/03/23 13:42:01.91
mail関数やmb_send_mail関数でメール送信しようとして
文字化けしたり、上手く送れなくてネットで調べながら
自分なりの「メール送信ライブラリ」を作ると思うんだが。

で、その後に添付ファイルやらHTMLメールやらを送信したくなって
qdmailのような他人が作ったライブラリを探すというのなら分かるよ。
でも、いきなり上記の部分すっ飛ばしてCake使って
「上手く動きません><」とか言われても、勉強不足以外の何者でもないだろ。

821:nobodyさん
12/03/23 16:25:24.36
仲良くしようぜ。

822:nobodyさん
12/03/24 15:01:00.43 oSWZUaYy
メール関連の機能が大幅に向上したバージョン2.1を使えばよい。

823:nobodyさん
12/03/24 18:51:05.67
kwsk

824:nobodyさん
12/03/25 01:08:52.69
paginatorでクエリを渡そうと思って
$paginator->options(
array('url' => array('?id=' . $id))
);
とやったんですが、
foo/?id=100/page~1
みたいなurlになってしまってうまく動作できません
foo/page~1?id=100
となるようにしたいんですが、optionsをどう書き換えたらいいんでしょうか?

825:nobodyさん
12/03/25 19:19:28.98
>>824
array( '?' => array( 'id' => $id ))
って感じじゃなかったかな

826:nobodyさん
12/03/25 23:49:03.03
Router::url(array('controller' => 'test', 'action' => 'index', 'id' => $id))

みたいな事をしてURLを生成しているのですが、
パラメータ部分を予め設定しておく事は出来ないのでしょうか?

827:nobodyさん
12/03/26 08:08:50.35
>>826
ヘルパーでも作る

828:nobodyさん
12/03/26 18:44:48.32 +fypSFER
フォームヘルパーを使って同じフォームを1ページの二カ所以上に作ると
formタグのidが重複しちゃうけど、どうやって回避するのがスマートかな
今はform->createでid指定して別名にしてるけど、あまりスマートに思えない

829:nobodyさん
12/03/26 19:11:54.92
フォームヘルパーってぶっちゃけ要らない機能だよね
最初は便利なのかなと思ったけどしばらくいじって思い通りにいかないから
ないものとして普通にformタグ書くようにしたら能率上がったわ

830:nobodyさん
12/03/26 23:14:30.50
>>829
確認の時どうしてるんだ?次のページに推移して「エラーがあります」か?

831:nobodyさん
12/03/27 00:49:24.75
>>829
いや、使った方がいいよ。
俺もベタ書きやってたけど使わないとエラー処理が困る。

832:nobodyさん
12/03/27 01:42:43.77 J3nZuwJg
バリデーションエラー時に普通の方法だと
エラーが出たフォームの上(下だっけ?)にメッセージが表示されるけど
任意の場所に表示したい場合はどうしてる?

833:nobodyさん
12/03/27 03:37:14.44
<?php echo $form->error('Post.name')?>

834:nobodyさん
12/03/27 14:05:24.25
CakePHPで「INSERT~ON DUPLICATE KEY UPDATE」
は使えないのでしょうか?使える場合は書き方を押してください

835:nobodyさん
12/03/27 14:37:07.94
CakePHPの質問を書いたら、ちゃんと答が返ってくる掲示板ないでしょうか

836:nobodyさん
12/03/27 17:57:15.57
>>835
cakephpのコミュニティで質問すれば。
URLリンク(cakephp.jp)

837:nobodyさん
12/03/27 18:30:51.02
>>834
Model -> save()

838:nobodyさん
12/03/28 22:39:25.33
設計って結構迷うよね・・。

編集でidが2つある場合、URLが/post/edit/1/2
みたいになるけど、これってわかりづらいよね。
ピュアPHPの、edit.php?parent_id=1&id=2の方が分かりやすい気がする。
まぁ、Cakeでは/edit/parent_id:1/id:2 というURLにはなるんだけどさ・・・

839:nobodyさん
12/03/28 22:40:41.18
>>838
ID=一意に表すもの
だし1つで表せないとしたらそれはIDじゃない
1つで表せるならURLに含ませる必要ない

840:nobodyさん
12/03/28 23:05:18.11
>>839
別々のものに同じidが割り振られているのはおかしいが、
ひとつのものに二つ以上のidが振られているのは問題なくね?

841:nobodyさん
12/03/28 23:10:52.27
>>840
問題ないけど、2つ持たせる意味がわからないし、
仮に持たせたとしてもそれをURLに含ませる意味もわからない

842:nobodyさん
12/03/28 23:15:51.51
>>841
管理画面があったとして、
ユーザID・1が投稿したお知らせのID2を見たいとする。

ピュアPHPなら、edit.php?user_id=1&id=2だよな?
Cakeなら/edit/1/2か/edit/user_id:1/id:2だな。
セッションに含めて持ち回る方法もあるけど、
毎回セッションに入れるのはおかしくないか?って思うからさ。

843:nobodyさん
12/03/28 23:24:56.61
edit.php?id=2
じゃだめなの?

844:nobodyさん
12/03/28 23:32:10.02
ピュアPHPだとそれで良いんだよ。でもCakeだと迷うだろ?
Cakeの書き方で言えば、
/news/add/1  この1はuser_idの1
/news/edit/2  この2はidの2
URLを見ただけでは混乱する

845:nobodyさん
12/03/28 23:46:26.83
POSTすりゃええやん

846:nobodyさん
12/03/28 23:58:08.70
迷うだろって言われても迷わないよな

847:nobodyさん
12/03/28 23:59:20.33
>>846
ほんとに?自分だけで分かるからOKって考え方なの?
ちなみに、/edit/1/2みたいな書き方はBaserCMSでもやってた

848:nobodyさん
12/03/29 00:03:50.49
自己レスだけど、コーディング時は迷う事はないか。
Router::url('/news/edit/' . $data['Newsr']['userid'] . '/' . $data['News']['id'])
になるわけだし。単なるURL上での事ならこだわる必要ないかな。
外部に公開するわけでもないし。

849:nobodyさん
12/03/29 00:06:24.29
>>847
自分だけわかるもくそも、URLの規則を万民にわかるように書くことなんてそもそも無理じゃね?

850:nobodyさん
12/03/29 00:14:21.30
>>849
そうだな。規約に従おうとこだわりすぎてたわ。
自分が作りやすい方法でやるよ。色々ありがとう

851:nobodyさん
12/03/29 00:19:24.06
>>850
URLでなんのページかわかりやすくしようというのは、ユーザビリティの面からも正しい考え方だけど
この件に関しては>>844の書き方で充分わかりやすいといえる範疇だと思う

852:nobodyさん
12/03/29 04:02:59.81
>ピュアPHPなら、edit.php?user_id=1&id=2だよな?
>Cakeなら/edit/1/2か/edit/user_id:1/id:2だな。

誰がこんなこと決めたの?
Cakeだって/edit?id=1&id=2ってやるだろ。

853:nobodyさん
12/03/29 10:57:51.78
さすがにそれはやらない

854:nobodyさん
12/03/29 22:50:57.56
/edit/parent_id/1/id/2 とか

855:nobodyさん
12/03/29 23:14:23.59
user_idがidから引っ張ってこれるんならURLに含めないな
usernameなら/news/tanaka_ichiro/123みたいな感じで含めてもいいと思うけど
どうしてもuser_idもidも含めたいのならnamedパラメータ使って/news/user_id:1/id:2とかにする

856:nobodyさん
12/04/01 00:45:58.67 OiSFrCKx
ブラウザのエンコードの切替ができないんだけど2.x系って特別な設定あるのかな?

1.x系の場合コントローラに
function beforeFilter(){
//携帯なら
if($this->Ktai->is_ktai()){
Configure::write('App.encoding', 'SJIS');
$this->layout = "mobile_layout"; //charset=shift_jis"
}else{
って書けばブラウザのエンコードが既存の「UTF-8」から「SJIS」に切り替わるのに2.x系だと「UTF-8」のまんまだ。。。
かなり嵌ってるんだけど分かる人いるかな?
てか俺の環境がおかしいのかな??

857:nobodyさん
12/04/01 02:38:57.47
App.encodingってシステム的なエンコードの設定で、出力のエンコードとは関係ないんじゃないの
設定したことないから知らないが
ヘッダーはutf8とsjisどっちなの?

858:nobodyさん
12/04/01 03:16:24.89 OiSFrCKx
>>857
PCと携帯でエンコードを分岐したくて
PC -> UTF-8 携帯 -> shift_jis
core.php自体に記述しているのは
Configure::write('App.encoding', 'UTF-8');
なんだけど、携帯のページを表示するときは
beforeFilterでConfigure::write('App.encoding', 'SJIS'); に変更してます
cakephp1.3だとこの設定でブラウザのエンコードはshift_jisに変更されるんだけど
2.x系だとUTF-8のまま。。。
core.php自体をConfigure::write('App.encoding', 'UTF-8');に書き換えると
ブラウザのエンコードはshift_jisに代わるんだけどcore.phpだと分岐処理書けないから困っています。
2.x系だと別の処理が必要なのかな?


859:nobodyさん
12/04/01 03:18:29.30 OiSFrCKx
>>858
>core.php自体をConfigure::write('App.encoding', 'UTF-8');に書き換えると

上記は
Configure::write('App.encoding', 'SJIS');の間違いです。
誤植すいません。。。


860:nobodyさん
12/04/01 17:58:24.58
軽く調べてみたけどApp.encodingは内部コードの設定だからやっぱり出力のエンコードとは関係ないよ
ケータイ対応したいならこういう感じに書いたら?
URLリンク(webengineerlife.com)

861:nobodyさん
12/04/02 00:51:25.23 ZyijX88y
>860
ありがとう
ちょっと試してみます。
携帯ライブラリとか使って複雑になってるのも原因の1つかもです。。。


862:nobodyさん
12/04/03 18:18:51.92
cakephpでもhavingが使えるんだな。
そしてhavingってめちゃくちゃ便利だな。
これのお陰でDBの設計が楽になった。

863:nobodyさん
12/04/04 18:16:19.49
フォームヘルパーでのサニタイズは何もしなくても自動でしてくれるけど、
表示(コントローラからset)の場合は、個別でサニタイズしなきゃいけないんだな

この点忘れてた・・・

864:nobodyさん
12/04/05 00:28:36.65
1.2経験しかなかったんだけど初めて2.1使ってみたら
ローカルのxampp環境でmodelがbake出来ないんですけど。。
cliのphpが「問題が発生したため・・・」になる

865:nobodyさん
12/04/05 23:35:57.76
findの条件で、
テーブルFoosのflagがonのものだけ取り出したいとき、
'conditions' => array(
'Foo.flag' => 'on'
),
と書いてできたんですが、
Foosのflagがonでかつ、
Foosのlawと同じ値のBarsテーブルのidの、deleteがoffのもの、というのを条件にしたい場合どう書けばいいでしょうか?

具体的には、
Foosのテーブルには商品リスト、Barsには業者データがあり、
取り扱っている商品、でかつ、倒産していない業者、の商品リストだけ取り出したいのです

よろしくお願いします

866:nobodyさん
12/04/06 01:33:16.23
ローカル環境にApach + PHP + MySQLの設定をするのが
面倒なのでレンタルサーバにリモートプロジェクトとしてEclipseでバンドして
作業してるんですが、こういった開発手法ってNGでしょうか?

867:nobodyさん
12/04/06 11:00:58.23
自分が良ければおkだと思うよ

868:nobodyさん
12/04/06 11:22:58.85
ありがとう。勇気付けられました(?)


ローカルとサーバで2度設定をする手間を考えるとやはり
直接サーバ上でコードをいじった方が効率が良いと思うんだよね。

869:nobodyさん
12/04/06 11:44:34.19
>>868
俺もそう思う。

870:nobodyさん
12/04/07 00:51:33.09 4OZyxrY6
下記サイトを参考にしCakePHP 2.1.1安定板をダウンロードし
さくらインターネットに設定しようと思っているのですがどうしてもうまくいきません。
URLリンク(mori.moripower.jp)

どの部分でエラーが起きているか追いかけてみたところ
/home/user_name/www/app1/index.php
において、下記判定処理でインクルードに失敗していました。
if (!include(CAKE_CORE_INCLUDE_PATH . DS . 'Cake' . DS . 'bootstrap.php')) {

bootstrap.php自体のパスは下記が正の筈なので
直接(べた)書きで試してみましたがやはりダメでした。
(bootstrap.phpの権限を 755に設定してもダメ)
/home/user_name/cake/lib/Cake/bootstrap.php

どなたか同じ様な体験をされた方はいませんでしょうか?

871:nobodyさん
12/04/07 01:04:14.05 ET0rgidW
そんなこと今更知ったのか、バカを晒して楽しいか?

872:nobodyさん
12/04/07 01:11:46.23
>>870
それだけ見るとディレクトリ構成を間違えたかindex.phpのパスの設定が間違ってるっぽいけどなあ

873:nobodyさん
12/04/07 01:52:28.91
>>872
>>870
に記載のURL通りに指定しております。
ちなみに bootstrap.php の中では定数等を定義しているだけの様なのですが
このファイルの読込は、CakePHPの実行には必須なのでしょうか?

また、さくらインターネットにおいて、最新のCakePHPの導入が出来る様に
解説したサイトをご存じでしたらお教えください。

どうも私の方でぐぐってヒットするサイトは
2・3年前の古い物ばかりで最新のCakePHPには即していない様です。


874:nobodyさん
12/04/07 09:38:19.35 PHPJ9271
1.3時代からいじっていないから何か違うかもしれないが

>bootstrap.phpは必須か?
bootstrapは、起動時の設定をまとめたりしてるもんなんで必須なはず

おまいさんのスキルが見えないので余計なアドバイスかもしれないがとりあえず、CAKE_CORE_INCLUDE_PATHの内容を調べてみてどうよ?

875:519
12/04/07 11:17:18.36
>>874
見事なIDを見た

876:nobodyさん
12/04/07 11:21:45.79
名無しに戻し忘れorz
ぬかったわ。。。

877:nobodyさん
12/04/07 12:05:32.12
>>874
定義された内容でもって直接includeしたのですが
それでもダメでした。

もうちょっといろいろと試してみます。

878:nobodyさん
12/04/07 12:43:18.13
ちょっと気になっているんですけど
CakePHP って途中で開発終了の可能性は他のFWと比べて高いですか?低いですか?

879:nobodyさん
12/04/07 12:54:05.32
誰にもわからないことだな

1つ言えることは、ZFに比べたら確実に高いということぐらい。。

880:nobodyさん
12/04/07 13:09:04.61
せっかくCakePHPの癖をつかんだとしても
終了してしまったら学習コストの無駄になるのを恐れている。

やっぱしZFの方が無難かな?

881:nobodyさん
12/04/07 13:23:49.88
zendはコンポーネント群にすぎないから、位置づけがCakeとは異なるよな。

882:nobodyさん
12/04/07 14:05:56.13
コストの無駄たって、経営者が新人教育について言ってるんだならまだしも
自分の脳みそのしわを増やすのにコストで考えるのはわからんw
浅く広くでもどれでも触って使えるようになっとけばいいよ

883:nobodyさん
12/04/07 16:48:09.15
とりあえず、俺は1.3をあと2年は使い続ける

884:nobodyさん
12/04/07 18:01:43.94
フォームの確認ページでのサニタイズってどうしてます?
$this->dataを一括でサニタイズする処理をするか、
確認ページのビューで<?php echo h($this->data['Post']['name'])?>
みたいにするかどちらかだと思っているのですが、
他に良い方法や考え方はありますでしょうか?

885:nobodyさん
12/04/07 18:21:39.17
サニタイズいうなキャンペーン開始

886:nobodyさん
12/04/07 23:59:10.64
Cakeでそう言う名前だろw

887:nobodyさん
12/04/08 10:36:25.86 4ALRLsfw
>>875
うぉ!自分で書いてて気づかなかった。IDの仕組み分からんからこの書き込みIDどうなるか分からん。。。

>>884
ビューでエスケイプ。責任をしっかり分けておかないと後で後悔する

888:nobodyさん
12/04/09 01:52:30.87
>>873
さくらじゃなくてxreaとかcoreserverとかの設置方法見たら?
/home/username/cakephp
/home/username/www
という感じに分けて、コアファイルをパブリックに置かないようにするのは一緒だよ

xreaだと
/virtual/username/cakephp
/virtual/username/public_html
とかになるけど

889:nobodyさん
12/04/09 11:26:19.21 gWXPCP/C
Cakephp2.1.1のモデルのファイル名に関して質問させてください
ローカル(mac)の環境ではファイル名を小文字のみ(example.php)にしても読み込まれるのですが、
サーバー(centos)では一文字目を大文字(Example.php)にしないと読み込まれません
最新のCakephpはモデルのファイル名が大文字で始まるようなのですが
ローカル環境では小文字でも動いています
これはapacheの設定かphpの設定かosの設定なのでしょうか!?

890:nobodyさん
12/04/09 12:26:26.44
ローカルのOSがファイル名の大小を区別するかは調べた?

891:nobodyさん
12/04/09 13:37:22.79
下記階層にCakePHP一式を配置し各種設定を行った後、
マルチドメインにて設定したパスに、アクセスしてみたところ
一応CakeFW自体は正常に動作している様に見受けられるのですが
(CakePHP:the rapid development php framework が表示されました。)

/home/{user_name}/www/multi_domain_directory

下記CSSがあたっていません。
<link rel="stylesheet" type="text/css" href="/css/cake.generic.css" />

ソースを開きその中のCSSの読込をクリックすると
本来は app/webroot/css/cake.generiuc.css
が認識されないといけないハズなのですが webroot/css が認識されないです。

どうすればCSSが正常に認識される様になりますでしょうか?

※一応CakeFWを追いかけると lib/Cake/view/Helper/HtmlHelper.php / function css()
にてロードをやっている様なのですが
こちらは、FW本体なので手は入れたく無いです。

892:nobodyさん
12/04/09 16:51:20.49 gWXPCP/C
>>890
おーこれだ
macのファイルシステムがHFS+ってのでこれが大文字小文字区別しないんですね
半日も嵌ってしまたけど勉強になった
どうもです

893:nobodyさん
12/04/09 17:02:12.28
1.3系でプラグインの作成で質問です。

>>721でindexアクションを作ればプラグイン名のみでアクセス可能となりますが、
/pizza/addの場合、エラーになります。/pizza/indexでもエラーです。

プラグイン内のコントローラを参照しているからこうなると思うのですが、
プラグインで/pizza/addとか/pizza/editのアクション指定したい場合は、
ルーティングをいじらないといけないのでしょうか?

894:nobodyさん
12/04/09 20:13:47.19
cakePHPってYiiとかなり似通ってるね。

895:nobodyさん
12/04/10 11:26:36.93
レイアウト全体をキャッシュせずに
「$content_for_layout」の内容のみキャッシュしたいのですが、
どうすればいいのでしょうか?


896:nobodyさん
12/04/10 12:05:36.17
外部に公開する場合に

→ Error: 23423Controller could not be found. ←

こーいうエラーメッセージを表示せずに
存在しないページ、URLでアクセスされた場合には
事前に用意したエラーページ(メッセージ)を表示したいのですが
どうすればよいでしょうか?


897:nobodyさん
12/04/10 12:24:22.68 R7ZoSsIJ
2になってから$_GET['url']って読まなくなった?

898:nobodyさん
12/04/10 13:53:53.12
>>897
マイグレーションガイドぐらいは読もうぜ
URLリンク(book.cakephp.org)

899:nobodyさん
12/04/10 15:35:48.29
仕様を変える方が悪い

900:nobodyさん
12/04/10 15:45:33.60
POSTフォームだと$this->request->dataの内容に応じて
インプットの値が自動で上書きされるのに、
GETフォームだと、空のままなんですが、
自分でマージするしかないのでしょうか・・・?

$this->request->data = $this->request->query;
とやってもダメでした。

901:nobodyさん
12/04/10 16:19:05.60
>>895
layoutのcontent_for_layout以外のところをnocacheでくくってみたら?

>>900
getでもフォームの内容は引き継がれるはずだよ
遷移先のフォームのIDとかnameが変わっちゃってない?

902:900
12/04/10 16:51:59.32
>>901
うーん・・・私の環境だと引き継がれませんね。
ちなみに2.1系です。

903:864
12/04/10 23:50:19.65
もし同じ状況の人がいたらあれなんで一応動いた解決法
URLリンク(d.hatena.ne.jp)
↑のとおりdll書き換えてCLI落ちなくなった

904:nobodyさん
12/04/11 10:44:38.27
誘導されましたのでよろしくお願い致します。


cakePHPのヘルパーを使って画面遷移させようと
しているのですが、出力されたリンクに関係ない文字列(ここでは、 /app )
が勝手に付加されてしまい困っています。

<?php echo $this->Html->link('JUMP', '/jump', array('class' => 'button', 'target' => '_self')); ?>


ここでは、本当は (B)の形でhtmlを出力したいです。どうすれば良いでしょうか?

(A) <a href="/app/jump" class="button" target="_self">jump</a>
(B) <a href="/jump" class="button" target="_self">jump</a>


905:nobodyさん
12/04/11 16:48:45.18
管理者が管理画面から会員ページに移動したいと思っています。
会員のパスワードは暗号化されるので、通常のログインでは無理です。
こういう場合って、単にAuthのセッション情報を付与して
会員ページにリダイレクトするだけでしょうか?

906:nobodyさん
12/04/11 18:45:08.55
管理者としてではなく、管理者が会員Aさんになりすましてログインするってこと?
嫌な仕様だなw

会員ページのメンテナンスとかしたいなら管理者権限でそう言うのできるアクションを
作ればいいのでは

907:nobodyさん
12/04/11 21:58:40.91
>>904
PHP上級者スレとのマルチ

908:864
12/04/11 22:08:14.47
>>904
cakeでの/はcake_appのルートになるからその動作が適切だよ
普通にHTMLで
<a href="/jump" class="button" target="_self">jump</a>
って書けばいいじゃん。
もしかしたら
'/../jump'で解釈してくれたりしないかな?知らないけど

909:nobodyさん
12/04/11 22:08:55.22
名前やちまたorz

910:nobodyさん
12/04/11 22:12:31.92
てかこれでブラウザが解釈してくれるわな
吐き出されるのはこうなるけど
<a href="/app/../jump" class="button" target="_self">jump</a>

911:nobodyさん
12/04/11 22:50:15.55 Ko+Ap9VU
>>904
routingのprefixかなんかで特殊な設定してない?
appという文字列がどこからやってきたのか検討もつかない状態なの?

>>905
Authでログインしようとしても無理だと思うので>>906でいいんじゃない

912:nobodyさん
12/04/11 23:12:38.64
>>908
cakePHPをせっかく使っているので直接書きはしたくないです。

>>911
基本的にcakePHPのベースコードは何もいじっていないのですが
FWにデバッグコードを入れておっかけてみます。

>>907
お前の投稿自体マルチだろ。しね。

913:nobodyさん
12/04/11 23:16:31.45
>>908ですが、、、

あれ?cakeルートがサーバーのウェブルートで無い場合に、
Html->link()つかってサーバールートへリンクしたいってことじゃないの?

つまり、サーバールートの下にappってディレクトリがあってそこがcakeのルートになってるんじゃないの?

914:nobodyさん
12/04/12 12:04:20.30
cakePHPでは一般的に共通で使用されるファンクションは
どこに定義しますか?

パスを教えてください。
Utility的な自己ライブラリを定義したいと考えています。

915:nobodyさん
12/04/12 12:18:39.89
ファンクション群ならbootstrapじゃね
外部にしてincludeか

916:905
12/04/12 13:56:49.96
>>906>>911

私も管理画面に会員情報を編集できるページを作っていたのですが、
管理画面から対象の会員としてログインし、
会員情報の修正をしている市販CMSを結構見るんです。

たぶん、同じような箇所を管理画面用・会員用と分けて作るのは
手間がかかるからログインし直すという事で対処していると思うのですが、
あまり良いやり方ではないみたいですね。

917:nobodyさん
12/04/12 18:05:37.36
成りすましをしているようで変態的

918:nobodyさん
12/04/13 01:19:58.45
>>914
vendorにライブラリとして突っ込む

>>916
ユーザーが実行できる範囲の行動を管理者が行うという前提であれば
手抜きの方法としてナシではないのかもしれないけど、スマートでないのは確か
というかユーザーが修正できるんならユーザーに修正させるべきじゃね?
管理者がユーザーの設定代行するって言うのはかなりの最終手段のような気がする

919:nobodyさん
12/04/13 14:04:43.06
Cakephp のメソッド引数として全角文字列を入れて動かしているのですが、
なぜかIEでだけ、動きません。

URLリンク(hostname.jp)全角の検索ワード

という感じのアクションなのですが、Chromeでは問題なく動いているのですが、
IE系のブラウザではまったく動いてくれません。検索ワードが半角文字だけですと、IEでも動いています。

そもそもCakeのメソッド引数に上記の方法で全角文字列を渡してもいいものなのでしょうか?
なにか別にいい策があればご教示ください。

920:nobodyさん
12/04/13 14:52:39.24
全角?
古臭い用語だな

921:nobodyさん
12/04/13 15:01:55.33
>>920
マルチバイト文字のことです。正確にはUTF-8の日本語文字列です。

922:nobodyさん
12/04/14 00:10:19.08
>>919
Cakeとか関係ない。

UTF-8で書かれたページでPOSTしたら
サーバーに投げられる文字コード何か?

EUC-JPで書かれたページでPOSTしたら
サーバーに投げられる文字コード何か?

この2つの例でサーバーに投げられ文字コードは何で決まるのか?

URLリンク(hostname.jp)全角の検索ワード
の「全角の検索ワード 」の部分の文字コードはどうやって決めるのが正しいか

考えてみれば良い。

923:nobodyさん
12/04/14 09:35:05.93
文字コードも関係ないwww


924:nobodyさん
12/04/14 10:00:41.58
URLエンコード

925:nobodyさん
12/04/14 10:52:00.00
アホか。URLエンコード するときの
文字コードは何だよ。言ってみろ

926:nobodyさん
12/04/14 12:26:15.35
cakePHP2.1.1を使用してコントローラの中からモデル内に定義した
ファンクションをコールしようとしているのですが
下記の様なエラーが出てしまいます。
どこに間違いがあるのでしょうか?

[model]
class Test extends AppModel
{
var $name = 'Test';
function Testxxx(){echo "Test!";}
}

[controller]
var $uses = array('Test');
$this->Test->Testxxx();

[error]
Error: SQLSTATE[42000]: Syntax error or access violation: 1064
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'Testxxx' at line 1

927:nobodyさん
12/04/14 13:43:48.92
Error: SQLSTATE[42000]: Syntax error or access violation: 1064
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'Testxxx' at line 1


928:nobodyさん
12/04/14 13:50:12.49
エラーメッセージを繰り返したら誰かが答えるとでも?

929:nobodyさん
12/04/14 14:11:27.02
>>926>>927 は別人だろうが。
>>928お前はミサイルで頭を破壊した方がいいよ。どうせまともなルックスしていない下種野郎だろうしな。

930:nobodyさん
12/04/14 15:09:22.75
で?それが質問者の態度?

931:nobodyさん
12/04/14 18:06:38.12
cakePHP で特定のコントローラ

例)
denyController.php


へのアクセスを禁止するには一般的にどうしますか?

.htaccess or cakePHPでなにがしかの設定が可能?



932:nobodyさん
12/04/14 18:42:11.68
cakePHPでdeleteAllに削除条件を指定しても無効なのでしょうか?
下記コードを実行すると、全レコードが削除されてしまいます><;

$deleteCondition = array("hoge_id" => 3333);
$this->Hoge->deleteAll( $deleteCondition );

933:nobodyさん
12/04/14 18:52:06.84
>>932
条件の与え方はfindと同じだよ。
その条件でfindしたら検索されるの?


934:nobodyさん
12/04/14 19:34:52.76 V2giXwsG
>>931
俺ならコントローラー全てのアクションにprefixつけてprefixルーティング&アクセス制御って感じかな

935:nobodyさん
12/04/14 19:38:18.38
>>933
自己解決しました。

英語のドキュメントを見たところ
cake2.1.1 になってから呼出し方が微妙に変わっていました。

936:nobodyさん
12/04/14 19:55:02.70
>>935
一応、どう変わったのか書いてほしいな

937:nobodyさん
12/04/14 20:25:02.13
>>936
実際には delete は変わってませんでした。

findについては、

findAll → find('all')

といった感じです。
しかし、なぜ同じコードで>>932が今度は正常に削除出来たか不明。

938:nobodyさん
12/04/14 20:33:32.07
controllersの下にサブフォルダを作ってコントローラーを置くと認識されますが、view以下で同じことをやるとエラーになります。
viewsのパスを任意に追加するにはどうすればいいのでしょうか?
ソース見たらApp::path('views')でパスは取れるみたいだけど追加の関数がない。

939:nobodyさん
12/04/15 02:11:36.29
なれると cakePHP むっちゃ便利やんかぁ。

940:nobodyさん
12/04/15 08:46:03.26
cakePHP と Pear って一緒に使える?

941:nobodyさん
12/04/15 19:57:59.30
はい

942:nobodyさん
12/04/15 20:19:36.67
cakePHP で 
URLリンク(hogehoge.com?age=17)<)


として処理を行うにはどうしたら良いでしょうか?


943:nobodyさん
12/04/15 20:27:24.52
>>942
ブログチュートリアルでもやればやり方わかるだろう

944:nobodyさん
12/04/16 13:39:36.79
cakePHP(2.1.1) で AController / Hoge() 内の処理で 


AController / Hage()

BController / Chabin()

を呼び出すにはどうすれば良いでしょうか?

945:nobodyさん
12/04/16 13:50:55.75
>>944
異なるコントローラ間で同じ処理をやらせないなら、コンポーネントを使うといい。

946:nobodyさん
12/04/16 14:00:58.75
>>945
ありがとうございます。
どうしても重複処理があり使いまわしたと思ってました。

947:nobodyさん
12/04/16 19:03:36.34
cake2.1.1(サクラ) でcronでcakePHPを実行させる為に、まずコマンドラインから
正常にキック出来る事の確認をしているのですがうまくいきません。

1.x系と2.xとでは記述方法が異なっている事を考慮に入れ
下記コードを記述しているのですがなぜかシェルクラスが認識されないです。

【作成したシェルクラス】
Console/Command/TestHelloShell.php
<?php
class TestHelloShell extends AppShell
{
public function main()
{
$this->log('[Shell]main() が実行されました。', LOG_DEBUG);
}
}
?>

【コマンドライン】
%/usr/local/bin/php /home/{my_account}/cake/lib/Cake/Console/cake.php test_hello -app /home/{my_account}/www/{my_directory}/app
Error: Shell class TestHelloShell could not be found.
#0 /home/{my_account}/cake/lib/Cake/Console/ShellDispatcher.php(167): ShellDispatcher->_getShell('test_hello')
#1 /home/{my_account}/cake/lib/Cake/Console/ShellDispatcher.php(69): ShellDispatcher->dispatch()
#2 /home/{my_account}/cake/lib/Cake/Console/cake.php(41): ShellDispatcher::run(Array)
#3 {main}


948:nobodyさん
12/04/16 23:25:38.33
>>947
ドキュメントをよめ

949:nobodyさん
12/04/19 01:38:53.63
cakePHP ってなんでこんなに便利なんだ。楽しすぎる

950:nobodyさん
12/04/19 16:26:48.17 GZ2gdGu2
ログイン認証とかの制御をいれたいんですけど
お勧めの方法はありますか?


951:nobodyさん
12/04/19 17:13:57.30
Auth使えば

952:nobodyさん
12/04/19 17:14:15.72
Authコンポーネント

953:nobodyさん
12/04/19 17:29:14.82
良く使用する変数(サイトのURLなど)をDBで管理して
設定ファイルに出力したいのですが、良い方法は無いでしょうか?

考えたのは、モデルキャッシュして設定ファイルが必要な時に
そのキャッシュを読み込むパターンです。


954:nobodyさん
12/04/19 19:06:23.24
>>953
bootstrap.phpでDBから設定データを読み込んでConfigure::Storeでキャッシュ。
…でもいいんだけど、
Cake2からは ConfigReaderInterfaceっつうのがついたからね。
Readerを書けばモデルから直接Configureに読み込むができるようになった。
Configureファイルに書いた時と同じようにConfigure::read()でどこでも読めるから便利よ

955:nobodyさん
12/04/19 21:31:47.54
あと、Sanitize::escape() でサニタイズしたデータを復元するときって
みなさんどんな感じでやってますか?

956:nobodyさん
12/04/19 22:16:25.42
サニタイズいうな

957:nobodyさん
12/04/19 22:18:18.29
サニタイズ時々

958:nobodyさん
12/04/20 00:36:04.30
>>956
本当はなんていうの?
マジレス希望。

959:nobodyさん
12/04/20 00:54:10.36
サニタイズが正しいよ

verbだからな。


>>958

つまり >>956 は英語が出来ないばか

960:nobodyさん
12/04/20 01:41:15.34
>>951 >>952
ありがとう

961:nobodyさん
12/04/20 04:26:48.64
サニタイズ言うなを知らない方が馬鹿

962:nobodyさん
12/04/20 11:16:59.61
英語の出来ない >>961はもっとバカ

963:nobodyさん
12/04/20 12:22:03.72 PezrE8Wt
うんごぶりぶりんこ!!!!ドビュビュビュビュドバババババブッ!!!
ドリュルリュルウリュリィブブブブブブッッ!!!!あへあへうんこまん!!!ぶりっちょ!!!
ケツの穴からドババババババババッバwwwwwwwwwwwwWWWW
wwwwwwwwwwww
WWWwwwwwwwwwww??? ? ? ? ? ? ? ????? ????????wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
なお、まにあわんもよう

964:nobodyさん
12/04/20 12:25:44.92
↑サニタイズよろしく

965:nobodyさん
12/04/20 12:32:52.78
アホが露呈して ファビョル >>963
 低能乙w

いまどき英語なんて小学生でもペラペラなのにwww

966:nobodyさん
12/04/20 13:43:18.88
>>954
1.3系使ってるので、Configure::storeを使うパターンで行きます。
これってfindした配列を保存して、loadで読み込んでreadで参照
出来るから便利ですよね。参考になりました。ありがとうございます。

967:nobodyさん
12/04/20 23:58:00.96
俺がバカなら、お前もバカぁ~
バカを承知でなぜ惚れた~

968:nobodyさん
12/04/21 11:00:21.04
cakeでは当たり前だと思うのですが、
URLリンク(example.com)とかURLリンク(example.com)
というようにアクション名だけ指定したい場合、
ルーティングでアクション名を追加する必要がありますよね?

URLリンク(example.com)のコントローラがhomeであり、
/views/home/内にアクション用のファイルがあれば
routes.phpに記載しなくてもアクション名だけで
アクセスできないかと思い、質問しました。


969:nobodyさん
12/04/21 14:00:03.01
>>968
一行書くことになるけど
Router::connect('/:action', array('controller' => 'home'));
とかでいけるんじゃない


970:nobodyさん
12/04/21 14:43:21.86
>>969
この方法だと、コントローラにアクションを追加しないとアクセスできません。
pagesを使うように、アクション名を書かずにビューファイルを追加するだけで
アクセスできるようにしたいのですが・・・

971:nobodyさん
12/04/21 17:21:29.95
リモートデバッグについて質問なんですけど

Eclipseでレンタルサーバ上に展開したPHPファイルを
ローカルのEclipseにてデバッグ実行って出来ますか?
※ブレークポイントが正常に止まるか。

972:nobodyさん
12/04/21 22:21:07.57
>>970
アクション追加せずにビューだけ表示したいのならpagesでいいんじゃないの?
アクションが無いのだから特定のコントローラーを介する理由も無いし
Router::connect('/*', array('controller' => 'pages', 'action' => 'display'));


973:nobodyさん
12/04/22 10:29:18.10 L2FF/0Tg
>>971
リモートデバッグは、サーバー側のデバッグ用ポートにコネクトしてする感じ
そのレンタルサーバとやらに聞いてみて、デバッグ用ポートが開いていないのなら無理

まぁ、普通のレンタルサーバでデバッグポート開いている事はたぶん無いんじゃないかな

974:nobodyさん
12/04/22 11:01:45.48
>>973
ありがとうございます。
鯖屋に確認してみます。

ローカル環境に開発環境を作ると重たいので
全てレンタルサーバ上でやりたいなぁー、なんて考えてました。

975:nobodyさん
12/04/22 11:32:49.43 L2FF/0Tg
>>ローカル環境に開発環境を作ると重たいので
重いのはたぶんEclipseだよ
他のエディタとか使う事あるのなら、XAMPP+エディタで試してみるといい
ただ、GUIのデバッグ環境は無いと思うが。

976:nobodyさん
12/04/22 15:41:01.67
debugレベルを 0 にしても
適当なURLを入力すると次の様にサイトがcakePHPを使用している事がわかる様な
エラーメッセージが出てしまいます。

これを消す方法とかってありますか?

CakePHP: the rapid development php framework


977:nobodyさん
12/04/22 15:57:27.32
バカはしね

978:nobodyさん
12/04/22 18:19:37.02
>>976
default.ctpとかテンプレートのどっかに書かれてるんだろ
どこから出力されてるか突き止めてそれを消せ

979:nobodyさん
12/04/22 19:19:39.84
今どきデバッガの力を借りないとデバッグできないなんて

980:nobodyさん
12/04/22 19:53:54.59
デバッガすら使えない誰かさん >>979w

981:nobodyさん
12/04/22 20:33:38.25
HTMLでいうと

<li><input type="checkbox" name="data[Post][]"></li>
<li><input type="checkbox" name="data[Post][]"></li>
<li><input type="checkbox" name="data[Post][]"></li>

みたいな出力にしたい時、フォームヘルパーを使って出来ますか?

982:nobodyさん
12/04/23 16:08:34.29 3JcMmxsm
cakePHPでブラウザからアクセスがあった場合に
次の様に解釈させ、処理を実現をしたいのですがどうすれば良いでしょうか?

@アクセスされる際のURL
URLリンク(unnko.com)

@Controllerに定義した内容
class PrinController extends AppController
{
 function food($menu,$id)
 {
echo $menu."<br>"; // ← rice を表示したい。
echo $id."<br>; // ← 333 を表示したい。
 }
}


983:nobodyさん
12/04/23 16:13:23.70
バカはしね

984:nobodyさん
12/04/23 17:14:29.71
いつものウンコ野郎はスルー
頭の中にウンコがぎっしり詰まってるんだろ

985:nobodyさん
12/04/23 20:52:22.44
Lithium安定版でねーなぁ

986:nobodyさん
12/04/23 22:52:36.10
>>982
それで実現できてないか?

987:nobodyさん
12/04/24 11:09:19.41
>>981
<li>$this->Form->checkbox('post.xxx');</li>

988:nobodyさん
12/04/24 11:12:03.63
モデルでクッキーを読みに行きたい場合、皆どうしてる?

DB登録時に、クッキーからログインユーザーの情報吸い上げて登録しにいくフローって多くない?
モデル内でApp::usesでクッキーコンポーネント呼ぶのは邪道?

989:nobodyさん
12/04/24 11:24:40.31
モデルでくっきーを読もうってのがそもそも設計としてゴキブリレベル

990:nobodyさん
12/04/24 11:28:43.67
いや蛆虫だろう

991:nobodyさん
12/04/24 11:58:40.78
ああ、そうやっぱモデルでクッキー読むのは邪道なのね。サンクス

992:nobodyさん
12/04/24 11:59:56.14
>>982
View フォルダの下にPrinフォルダつくってfood.ctp作ったか?

993:nobodyさん
12/04/24 12:59:47.43
>>992
Thank you!


994:981
12/04/24 14:05:37.49
↓こんな感じでやってみたのですが、エラー時など同じビューを表示した時、
チェックした項目がチェックされていません。どうすればいいのでしょうか?

<li><?php echo $form->checkbox('Post.xxx', array('value' => 1)); ?></li>
<li><?php echo $form->checkbox('Post.xxx', array('value' => 2)); ?></li>
<li><?php echo $form->checkbox('Post.xxx', array('value' => 3)); ?></li>

995:nobodyさん
12/04/24 15:11:46.26
2.0のAuthがsessionKeyをself::$sessionKeyとしてるもんだから
コントローラーからモデル名に変えようにも
$this->Auth->sessionKey = 'Auth.Hoge';
じゃだめで
AuthComponent::$sessionKey = 'Auth.Hoge';
って市内とダメなんだけどそもそもいじっちゃマズイのかな?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch