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

【PHP】フレームワーク CakePHP 9ホール目【v1.3】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/07/23(金) 09:13:26ID:v3m09M9u
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※sage推奨
※質問時もsageること
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい

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

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0220nobodyさん2010/08/19(木) 22:02:59ID:???
>>219
もちろん可能。

つうかマニュアル一通り読んでみようや。
その上で、ああこれとこれをこう使えば○○ができるな。
って言うのがプログラムの一番面白い所だと思うんだけど。
0221nobodyさん2010/08/20(金) 00:16:47ID:???
>>220
お返事、ありがとうございます。

マニュアルを一通り、読んでいろいろ試してみます。
もし、わからない点があれば、また、ここに書き込みますので、
ご教授のほどお願いします。
0222nobodyさん2010/08/20(金) 01:04:57ID:???
>215
速い遅い以前に、どこでも触ることができるセッションでパラメータを渡すのは怖くね?
呼び出したメソッドで処理される前に、どこかで変更されない保証があるならともかく
02232152010/08/20(金) 07:48:15ID:???
どうもアドバイスありがとうございます。

セッションがどうしても必要な時以外は、変数で受け渡すことにいたします!
0224nobodyさん2010/08/20(金) 10:29:49ID:???
>>223
コントローラーとモデル間の受け渡しは絶対セッション使っちゃダメだろ。

基本的にセッション有効期間中、メモリーにデータが残るんだぞ。
毎回ちゃんと消せばいいけど、そんなプログラムはダサ過ぎだろ。

作った奴以外がプログラムを読んだとき、どこでデータが破棄されるかも分かりづらい。


0225nobodyさん2010/08/20(金) 10:48:22ID:???
綺麗にMとCが分かれているような構造のソース見てみたいなぁ。どっか公開してないかな。
0226nobodyさん2010/08/20(金) 13:26:24ID:???
CakePHPを使ったMVC設計のベストプラクティス - Sooey
http://old-journal.sooey.com/2008/03/26/717/
0227忍者Perl ◆M5ZWRnXOj6 2010/08/20(金) 16:07:53ID:2R5mBLkn
なにこのクソスレ!

痛いっすね!!!

マジパネーッス!!

ケーキとかネーミング痛すぎっすね!!マッスルPHPに変えなさいよ! お尻プリプリ!!
0228nobodyさん2010/08/20(金) 16:16:00ID:???
NGワードを登録するだけの簡単なお仕事
0229nobodyさん2010/08/20(金) 22:11:44ID:sucUVck5
まだCakePHP使ってる人っているのか
ある意味感心する
0230nobodyさん2010/08/21(土) 01:26:07ID:???
レス乞食
0231nobodyさん2010/08/21(土) 08:35:11ID:???
>229
ありがとう。がんばるよ。
0232nobodyさん2010/08/21(土) 09:45:37ID:???
感心されちゃった(テヘッ
0233nobodyさん2010/08/23(月) 18:17:04ID:???
http://bakery.cakephp.org/articles/view/cakephp-1-2-8-released

1.2系もまだメンテ続けるのね
0234Perl仙人 ◆M5ZWRnXOj6 2010/08/23(月) 23:45:48ID:3hx9uhRe
3キモ言語の特徴(Ruby PHP Python)

1、クソ発想力が無いゴミ他人のまね ◎◎ッターとか作りだすw
2、とりあえず流行に便乗 先を見通せない
3、メディアストリームにかける
4、ネットなのに敬語 (言い訳 ネットだから敬語でしょぉ
5、脳味噌が生まれつき弱い 考える力が無い(笑)
6、Perlerに絶対勝てない無理無理(笑)
7、最強とか最高とかいっちゃう 糞痛いやつら
8、ホリエとかIT著名人をフォローしちゃう やたらとMatzとかわめきだす
9、クソガリ クソチビなせいか脳味噌に栄養が行き届かない
10、力が無い 非力w 喧嘩したら速攻殺される(笑) 頭で勝てるとほざいてるがバールで殴られて即死
11、ブログなどツイッタの画像が2次元 美少女とかPHP厨に多い
12、くだらないつまらないゴミツイートをRTしまくる真性マジキムチ行為w
13、なにかしろPythonをひっぱってほざきだす 今時 今時って言葉が大好き
14、今時なわりに成果物がクソ  クソwebアプリ乙津です
15、存在が間違え 自殺してください死んでくださいお願いします(笑)
16、武道やってるとかいうが 合気道(失笑) クソガリでベンチが100kg未満(笑)


(笑)
0235nobodyさん2010/08/23(月) 23:55:07ID:???
PHPを5年やってますが
全部当てはまってます。
0236219 です2010/08/24(火) 00:11:15ID:5qdug9Ot
>>219 ←元スレ

>>220
なんとなく、ここを変更すれば、できるというのは確認できました。

アップロードファイルを画像ファイル(jpeg,gif,png)に制限することも可能ですよね?
何か触れてはいけない、本体のソースコードをいじりそうなんですが、
そんなことはないですよね?
僕が何かを間違ってますよね?
0237nobodyさん2010/08/24(火) 00:20:57ID:???
うんもう諦めてくれスレ違いなんだ
あと ←元スレ ってなんだ。なんか君変なんだすごく。
0238nobodyさん2010/08/24(火) 08:23:51ID:???
>>236
本体以外の話は使っている人がいないとレスまともなレスが付かないよ
とくに
>>219 ←元レス
のような大雑把な質問じゃーね
0239nobodyさん2010/08/24(火) 11:50:48ID:???
こんなレベルでもCakePHPは使いこなせるってことだな、すげぇよCake!!
0240nobodyさん2010/08/24(火) 13:23:02ID:???
優秀ってことだなFWとして
0241nobodyさん2010/08/24(火) 13:59:47ID:???
1.3本注文しちゃった
レビューを見ると初心者向けな部分が多そうだけど、一応おさらいだ
http://www.kadoppe.net/archives/2010/08/book-cakephp-1-3.html
0242nobodyさん2010/08/24(火) 14:06:40ID:???
>>241
俺も買った。
cakeは1.2から使ってるが、改めて読むには良い内容だと思うよ。
0243nobodyさん2010/08/24(火) 14:22:06ID:???
宣伝乙
0244nobodyさん2010/08/24(火) 15:38:07ID:???
>>241
自分も買った。
まだ全然読んでないけど、初版の <?= 部分が <?php echo に書き直されているっぽいのと
Jsヘルパーの加筆を確認した
0245nobodyさん2010/08/24(火) 16:28:14ID:???
1.2本と内容は同じなの?
0246Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 17:13:39ID:jwes9+en
>>アップロードファイルを画像ファイル(jpeg,gif,png)に制限することも可能ですよね?

Perlでやれば一発なのに 脳味噌たりてないのかな
だからPHP

クソゴミダニウンコハゲシネカス存在が釣りクソゲンゴ世界3キモ言語っていわれるんだよ(笑)
0247nobodyさん2010/08/24(火) 17:24:40ID:???
>>246
ありがとうございました
0248Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 17:24:59ID:jwes9+en
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
0249Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 17:28:09ID:jwes9+en
俺は忍刀を奪うため

Perl隠れ7人衆から 忍刀を強奪したい
0250Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 17:29:55ID:jwes9+en
おう チャクラ負けしてるよ
0251nobodyさん2010/08/24(火) 17:30:03ID:???
気違いすぎるw
0252nobodyさん2010/08/24(火) 17:31:30ID:???
何かにつけて日本に文句つけてくる朝鮮人みたいなヤツだな
0253nobodyさん2010/08/24(火) 17:34:04ID:???
というか、言語選ぶなよ
PHPとPerlなんて殆ど似てるんだから案件に寄って両方請け負うよ
0254Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 17:38:30ID:jwes9+en
俺の通り名は 天秤のPerl忍者

何故なら、態度や気分が 天秤のようにかわる

そのため、突然殺人衝動にかられて社員とかをやってしまう
前はMixiで働いてたが 突然殺人衝動においやられて PHPをつかってるやつの声帯を手でえぐってやってしまった・・・
一面中、血が飛び出て首から血が噴水のように飛び出ていた。

オレ「オレなにやってんだ・・・ひいいいいいええええええええ!!!!!!!!!」

またまたPHPをやってるやつをやってしまった

グシャッ!!!!!!!  社員「キャーーーーーーーーーーーーーーーーーー!!!


俺はその日をさかえに PHPユーザたちから社内いじめにあって 俺をPHPやってるやつが憎いと思った
0255Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 17:39:30ID:jwes9+en
>>251-253
ごめん
0256Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 17:40:53ID:jwes9+en
>>253
っで?
君はバカだろ PHPやってろよ君は

僕はIT業界で働かないからどうでも良いけどね(笑)
0257nobodyさん2010/08/24(火) 17:44:14ID:???
>9 :Perl忍者仙人モード ◆M5ZWRnXOj6 [] 投稿日:2010-08-22 22:30:40
>俺はPHP厨達にさんざんいじめられきた

>親にも見放され、IT業界にも見放され 俺はIT業界に復讐をするため生きていく

>そして俺はお世話になったPerlerやプログラマを抹殺し、凄い力を手に入れた 一瞬でコードを解読する目
>その目は複雑なPerlのコードでも 1万倍に上がった動体視力で一気に解析する

>もう俺に勝てる者はいない

>あの最強Rubyist まつもとひろゆきが俺の力に脅威を覚えて  俺を倒すようなプロジェクトを立ち上げていた
>俺はRubyistに囲まれたが この眼術で一瞬でかたをつけた
0258Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 17:48:04ID:jwes9+en
オレはようやく理解した
オレは復讐者
たとえ悪魔に身を委ねようとも
力を手に入れなきゃならない道にいる

Perlの花は2度咲かない!!!!!!!!!!
0259nobodyさん2010/08/24(火) 17:50:45ID:???
Perlは素晴らしい言語だよ
お前がPerlって名前背負って荒らしてるとPerlに傷がつくからやめろよな

あと、早く病気治せよ
0260Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 19:33:38ID:jwes9+en
259に裏で荒らしてPerl利用者を増やせっていってお金もらいました

259「2chでPerl忍者っていうコテで発言しまくれw」
オレ「はい」
259「これでPerl利用者増えるぞwwww」
オレ「うん」
259「誰にも言うなよwwww」
オレ「絶対言いません」

っていわれて50万貰いました
0261Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 19:58:23ID:jwes9+en
259のPerlを有名にさせる作戦は終りました
0262nobodyさん2010/08/24(火) 20:05:45ID:???
ただのコピペとかメインの荒らしと思いきや
全部書いてるんだ。こいつマジでビョーキだろ
うわああああ
0263nobodyさん2010/08/24(火) 20:45:05ID:???
怖いよね
0264Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 21:07:34ID:jwes9+en
っと3キモ言語の下っ端がわめいています
0265nobodyさん2010/08/25(水) 14:33:29ID:???
ワロタ
早くこいつを捕まえないとそのうち人殺すぞ
02662412010/08/25(水) 21:46:12ID:???
今日「CakePHP 1.3によるWebアプリケーション開発」が届いて読んでるけど、ちょっといまいちな内容だな・・・

チャプター2まで読んで気になった点

・セットアップ時にSecurity.saltとcipherSeedを変更してない
   「今は変更しなくても特に問題ないので」と書いてあるが、Noticeはなるべく早く消すべきじゃないだろうか
・セットアップ時のtmpのパーミッション変更に触れてない
   pages/homeのスクリーンショットではYour tmp directory is writableになっている
   XAMPP前提で書かれてるせいだろうか?知らないとLinuxの人とかはまるだろうし、一応触れて欲しい。
・なぜかapp/view/layout/default.ctpではなくapp/view/layout/hello.ctpを作ってコントローラーでレイアウト指定してる
   まずはレイアウト指定しないで使えるdefault.ctp使った方がわかりやすいと思うんだが・・・
   app/view/layout/default.ctpについて記述は今のところない。
・controllerで$this->set("result", htmlspecialchars($result));
   htmlspecialcharsはviewでやるべきなんじゃないだろうか
   それに加えてh()についての解説は(インデックスに載っていないので)たぶんない
   以後はhtmlspecialcharsが必要そうなシーンでh()ではなくSanitize::stripScriptsとか使ってる、なぜだ
・controllerでhtmlタグ書きまくり
   最終的に「controllerにタグを書くのは良くないので、こういうのは全部viewに移しましょう」と修正するのかと
   思いきや、そのまま説明が終わってしまった
   序盤だから説明をはしょるためなんだろうけど、せっかくのフレームワークでMVC切り分けないのはちょっと・・・
02672412010/08/25(水) 21:57:16ID:???
誤植
・P53 3行目]閉じ忘れ
・P65,P71, 修正されているはずの、<?= が<?php echo になってない

その他
・本文の$マークが縦棒二本で見づらい・・・
・viewがきれいじゃない(好みの問題かもしれないけど)
   <?php echo $a; ?>
   <br />
   <?php echo $b; ?>
   ではなく
   <?php
   echo $a;
   echo "<br />";
   echo $b;
   ?>
   みたいな書き方をするので妙に見づらい。

という感じで、細かい突っ込みどころもあるけど、なんだか不安になる内容だった
>>241のレビューでも誤植が多いと突っ込まれていたけど、コードレビュアーとかいないのかな?
0268nobodyさん2010/08/25(水) 22:01:18ID:???
>>266
宣伝乙とか言われてたけど、色々と酷いなw
0269nobodyさん2010/08/25(水) 22:03:14ID:???
ひでーな読みたくねーわ
0270nobodyさん2010/08/25(水) 22:11:24ID:???
>>267
個人的には後者のコードの方が好きだけどな
もっとも、自分で書くなら
<? php
echo $a.'<br />'.$b;
?>
ってな感じにするけど。
02712702010/08/25(水) 22:13:12ID:???
地味に間違えてるわorz
0272nobodyさん2010/08/25(水) 22:26:25ID:???
最後まで読めばいいんじゃねとりあえず
そんな俺は買ったけどまだ読んでないw
02732412010/08/26(木) 00:42:52ID:???
Chapter3で気になったところ

・pr()を使わないでprint_r()
   pr()はインデックスに載ってないのでたぶん出てこない
   h()もそうだけど、省略表記が嫌いなんだろうか

・モデルから持ってきたデータを回すときにforeachではなくfor
   好みの問題だけど、foreachの方が使われることが多いし、特に理由がなければ最初はforeach教えた方が・・・

・$this->flashは使わずに$this->redirect
   save完了したときなどはとにかくredirectしてる。メッセージ出してあげた方が親切なんじゃ・・・
   $this->flashもインデックスには載っていないのでry(Session->flashは載ってた)
   ちなみにredirectについてTipsで「redirectはうまく動かない場合もあるので、そういうときはphp.iniを修正」という
   解説が載っている。問題起きやすいのならとりあえずflashでいい気がするけど・・・

・beforeFindの実践例で「limitやorderが設定されていなかったらデフォの設定で上書き」というもの
   limitはともかくorderは普通にmodelで設定できるからbeforeFind使わないでも・・・

・VALID_NOT_EMPTYは1.2まで使われていたバリデーション用の定数という説明
   1.2の時点で非推奨になっていたような・・・(ちょっと自信なし)

・ユーザーデータ用のテーブルがPersonalsテーブル
   形容詞じゃなくて名詞でUserテーブルとか、Peopleテーブル(Personモデル)とか・・・

・<a href="/cake/sample/boards/edit/<?php echo $id; ?>">※この投稿を編集する</a>
   $html->linkが嫌いなのか、後半を見ても基本的に直でHTML書いてます
   ルーティング使うときとか便利だし、とりあえずhtml->link使うように教えた方がいい気がします

・記事を見るのはshowアクション、投稿者のデータを見るのはshow2アクション
   さすがにshow2はないんじゃないでしょうか
   なんか昔のcgi説明サイトを思い出しました
02742412010/08/26(木) 00:45:18ID:???
・変なバリデーション
if(!empty($this->data)) {
 $this->Board->save($this->data);
}
if($this->Board->validates()) {
 $this->redirect('.');
}
検証してないんですが、たぶんこれだと2回バリデーションが行われるんじゃないでしょうか
if(!empty($this->data)) {
 if($this->Board->save($this->data)) $this->redirect('.');
}
とかでいい気がします

誤植
・P78 bloards_controller
・P168 コードの方はnotEmptyになってるけど、解説文がVALID_NOT_EMPTY


もうポストイットがもったいない気がしてきた。
0275nobodyさん2010/08/26(木) 00:56:46ID:???
>>273
買う価値がないのは十分分かったからもういいよ
あとはブログにでも書いてなよ
0276nobodyさん2010/08/26(木) 01:41:03ID:???
俺も$html->linkは使わない
デザイナから上がってきたAタグを$html->linkに置き換えるのは面倒。
どんな属性が入ってるかわからんからその都度optionsに入れる必要がある。

だから href="<?php echo $html->url(array(......))"って書き換えるようにしてる。
0277Perl忍者 ◆M5ZWRnXOj6 2010/08/26(木) 07:17:20ID:/qgtmxHg
PHPでも $ 使うんですかwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


真似しかできないwwwwwww

Perlの真似
0278nobodyさん2010/08/26(木) 11:14:50ID:???
等と供述しており
0279nobodyさん2010/08/26(木) 12:38:59ID:???
>>278
相手にすんな
0280nobodyさん2010/08/26(木) 13:47:51ID:???
>>241
詳細なレポとても価値があるぞ。
アマゾンのカスタマーレビューに書いてくれるとなおよい。
02812412010/08/26(木) 14:05:08ID:???
書くの疲れたから、これ以上は書かないよ。
>>273の言うように、買う価値がないと伝わればそれで十分だし。
アマゾンとかブログで書くと個人特定されちゃうしね。

もう秀和システムの本は買わない。
0282nobodyさん2010/08/26(木) 22:30:09ID:???
参考になった。ありがとう。
・・・ver1.1から使ってて基本はわかってるし
あとはネットの情報で補完していくのが利口みたいだね。
0283nobodyさん2010/08/26(木) 23:15:45ID:bJUkFpkI
質問です。

CakePHPのURIって、以下のように成っていかと思いますが、

http://hoge.com/~piyo/home/コントローラー名/アクション名

http://hoge.com/~piyo/home ←この部分を定数にしたいです。


http://hoge.comは、FULL_BASE_URLという定数が用意されているので、取得できるのですが


取得する方法を知っている方は、教えてください。

0284nobodyさん2010/08/26(木) 23:43:37ID:???
あほだろお前
0285nobodyさん2010/08/27(金) 01:57:26ID:???
CakePHPのctpってHTMLのデザイナーにとってすごい見づらいね
htmlの中にPHPが大量にそのまま混ざってるって、ちょっとありえない

お前らその辺はあきらめて使ってるわけ?
0286nobodyさん2010/08/27(金) 02:13:56ID:???
<?php echo $hoge;?>
とか
<?php foreach ($arr as $foo):?>
<?php endforeach;?>
とか
<?php echo $this->element('bar');?>
くらいしか殆ど描かないんだけどいやなの?

いやならsmartyつかえばいいけど
0287nobodyさん2010/08/27(金) 02:24:01ID:???
お前らって。このスレ、デザイナーも見てるの?
0288nobodyさん2010/08/27(金) 02:25:46ID:???
>>285
PHP?なにそれ?って奴に頼んでるのかお前は
テンプレートエンジンのループなら意味解るけどfor文だとさっぱりとか言う奴の方がむしろおかしい
どうせツールで読み込めば<??>タグなんて無視されるんだし
0289nobodyさん2010/08/27(金) 10:27:21ID:eU+Zo85k
Paginatorのソートについて質問です。
Viewでソートをする場合
<?php echo $paginator->sort('ID', 'User.id');?> と書きます。

1:アソシエーションしているモデルを選択している場合、モデル名が必要ですが、
 Userというモデル名を書きたくないです。書かずにソートさせる方法はありますか?
2:ソートをクリックした後、URLがsort:User.idのようになりますが、
 カラム名がURLに表示する事に違和感を受けます。
 数字などに置きかえ出来ないでしょうか?
0290nobodyさん2010/08/27(金) 10:38:44ID:???
フレームワークの規約に従いたくないならフレームワーク使わなきゃいいんじゃね?
0291nobodyさん2010/08/27(金) 10:40:57ID:???
って言う奴多いけど、一部変えるのが困難なだけで
オレオレに戻るのはいかがなもんかとおもうけどな
0292nobodyさん2010/08/27(金) 10:44:42ID:???
自分が大好きなものにケチを付けられた時の子どもの反応と同じだね
0293nobodyさん2010/08/27(金) 10:59:30ID:???
>>285
俺はHTMLヘルパーを極力使わないようにして、ソースをシンプルにしてるよ。
デザイナーに見せたら「わかりやすいです」と言っていた。
あとは、>>286みたいに必要なコードだけ教えれば大丈夫だろ。

>>289
nanapiも普通にURLがsort:Search.pvとかなってるし、
気にしなくても大丈夫じゃねぇ?問題あったらこのやり方採用してないだろうし。
0294nobodyさん2010/08/27(金) 13:25:24ID:???
mysqlからデータを拾って、それをさらに計算して一覧にしたい場合あるよね。
そういう場合ってcakephpのpaginate使えないんだけど、みんなどうしてる?
0295nobodyさん2010/08/27(金) 13:30:08ID:???
>>294
paginateのパラメータにjoinの指定が出来るから、それ使ってる
0296nobodyさん2010/08/27(金) 13:30:44ID:???
もしもSQLで対処できないような計算の場合

1.paginateの結果(キーになる部分のみ)を変数に格納
2.キーをもとにプログラムで計算して、結果を変数に追加
3.編集した変数をsetでviewに渡す
0297nobodyさん2010/08/27(金) 13:40:06ID:???
afterFindでは出来ないの?
計算ってどんな?
0298nobodyさん2010/08/27(金) 14:09:51ID:???
>>294
virtualFieldでできるはずだが、違ったかな?
0299nobodyさん2010/08/27(金) 14:29:06ID:???
>>283
そこをルートとして使ってるのなら、普通にそのまま
define("ROOT_URL", "http://hoge.com/~piyo/home")
とかでいいじゃん

>>293
今すぐセキュリティの問題が出るというわけでもないだろうけど、
裏側の情報はあまり見せたくないという気持ちは俺にもわかる
特にsort:User.idみたいなのだと、そのまま中身が見られている
感じがして気持ち悪い
0300nobodyさん2010/08/27(金) 14:33:41ID:???
>>299
その書き方教えると「余計な定数増やすな!」って煽られるぞw
0301nobodyさん2010/08/27(金) 14:42:02ID:???
cakeはルート設置を推奨してるから、それ以外で運用するときに問題が出るのはしょうがない
0302nobodyさん2010/08/27(金) 15:05:12ID:???
295 〜 298さん
ありがとう。
user テーブル 1
id , name
shiken テーブル 多
id user_id tokuten

の関係で、「平均点で50点以上のユーザーのみ取得したい」
とか言う場合なんだけど。

join だと複雑な書き方がいまいちわからず、cakephp1.2なので virtualField使えず。
afterFind でできるならそれが一番楽だと思うんだけど。

一度上記全てをググって勉強してみます。
ありがとう。
03032992010/08/27(金) 15:09:18ID:???
>>289
1.URLはorder:idとかにして、beforeFilterあたりでparams['named']['order']を見て、
モデル名がなければモデル名を付加するとか
2.URLはorder:0とかにしておいて、bedoreFilsterあたりで、0=>id, 1=>createdみたいな
対応表を使って差し替えるとか

cakeのURLはシステム的にわかりやすいけど、ユーザーに見せるURLとは
ちょっと違う気がするんだよなあ
URLがシステム的にわかりやすいと、URLを書き換えて意図しないURLで
アクセスされちゃったりということもあるだろうし
そういうところはきちんと事前に想定して防げばいいんだろうけど、それでも
なるべくユーザーからはシステムは見えなくしたい
03042992010/08/27(金) 15:34:45ID:???
すまん適当なことを書いてしまった

$paginator->sort('ID', 'User.id');で作られるURLは、order:User.idじゃなくてsort:User.idだな
今試したらアソシエーションしたモデルでorder:idでアクセスするとエラーになるけど
sort:idでアクセスしたら、勝手にモデル名が補完された
なので、モデル名出したくないのなら$paginator->sort('ID', 'id');でいいんじゃない?
アソシエーションした他のテーブルのカラムでorderしたい場合は知らん。
0305nobodyさん2010/08/27(金) 16:17:00ID:???
>アソシエーションした他のテーブルのカラムでorderしたい場合は知らん。

その場合はやっぱり$paginator->sort('ID', 'User.id');こうなるんじゃないか?
03062992010/08/27(金) 16:24:42ID:???
それならやっぱりURLはsort:tourokujunとかにして、beforeFilterでparams['named']['sort']を見て
tourokujunだったらUser.idに書き換えるとか
03073052010/08/27(金) 16:56:58ID:???
function beforeFilter()
if (isset($this->params['named']['sort'])) {
if ($this->params['named']['sort'] === 'user_id') {
$this->params['named']['sort'] = 'User.id';
}
}
}

適当にこう書いてみたけど、こんな感じのエラーが出るね。
SQL Error: 1054: Unknown column 'User.user_id' in 'order clause'

これ以上テストするのもめんどいので後はしらねw
03082992010/08/27(金) 17:45:25ID:???
paginatorが見てるところが違ったな、$this->paramsじゃなくて$this->passedArgsだった

if (isset($this->passedArgs['sort'])) {
if ($this->passedArgs['sort'] === 'user_id') {
$this->passedArgs['sort'] = 'User.id';
}
}

これで動いた

っていうか>>289は他のテーブルのカラムでソートしたいのか?
0309nobodyさん2010/08/27(金) 18:06:07ID:???
>>308
この方法でもソートできなくねぇ?
03102992010/08/27(金) 20:28:29ID:???
1.3.3だけどちゃんと動くよ
他のテーブルのカラム指定してもOK
ただ、存在しないカラムを指定するとエラー表示せずにそのままorderなしでSQL発行するみたい
0311nobodyさん2010/08/27(金) 20:41:40ID:???
いや、そうじゃなくてpaginateで使うんだろ?
ソート扱いになっていないみたいなんだが。
0312nobodyさん2010/08/27(金) 20:48:56ID:???
アホがアホにモノ教えるって悲惨な状況だな
03133112010/08/27(金) 20:49:55ID:???
ちゃんと書かないと誤解を招くな。
308の内容を同じ1.3.3で試してみたけど、確かに1回目のOrderは適応される。
でも、ソートのリンクをクリックしたら並び替えされないし、
対象リンクのマーク(↓↑)が適応されていないよ って事を言いたかった。

308以上の事をしていたら知らんw
03142992010/08/27(金) 21:01:05ID:???
>>313
そりゃあ、pagination helperで出力する内容は変わらないだろ
そっちはそっちで整合するように修正すりゃいい話で

んで>>289,>>305,>>309,>>311,>>313は同一人物なのか?
0315nobodyさん2010/08/27(金) 21:07:32ID:???
>>314
書き下手で済まんな・・。
だから要件を満たしてないのでは?って言いたかった。

ちなみに309,311だけど。
0316nobodyさん2010/08/28(土) 14:08:58ID:???
cakeって難しいんだね
0317Miyagawa ◆M5ZWRnXOj6 2010/08/28(土) 16:50:11ID:kvWFLXrw
Hello. CPAN Module use Thank you :D
0318Miyagawa ◆M5ZWRnXOj6 2010/08/28(土) 16:56:12ID:kvWFLXrw
hi! They are shit!! fuck off!!

死ね!
0319nobodyさん2010/08/28(土) 16:58:16ID:???
fack you!
■ このスレッドは過去ログ倉庫に格納されています