[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 07/21 16:39 / Filesize : 152 KB / Number-of Response : 662
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:nobodyさん [2008/12/19(金) 15:52:19 ID:ylogT+7c]
■本家
www.cakephp.org/
APIドキュメント
api.cakephp.org/
cookbook(マニュアル)
book.cakephp.org/ja
the Bakery
bakery.cakephp.org/

■日本語フォーラム
cakephp.jp/


■過去スレ
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
pc11.2ch.net/test/read.cgi/php/1163850802/


276 名前:nobodyさん mailto:sage [2009/01/10(土) 20:38:48 ID:???]
>>274

ライブラリはそこそこだと思うけど、バグが多い…

277 名前:nobodyさん mailto:sage [2009/01/10(土) 20:58:25 ID:???]
>>266  >>267
> それはCSSじゃなくてHelperのしわざだろ
お〜い。ウソだよ。cssだよ。
form div.submit {
  border: 0;
  clear: both;
  margin-top: 10px;
  /* margin-left: 140px; */
}
これでsubmittボタンの頭の空白はなくなるよ。

278 名前:nobodyさん [2009/01/10(土) 21:22:36 ID:tnQWYP/T]
ルーティングだかコントローラー名を規約から変えると
formヘルパーの吐く action属性もおかしくなるな

279 名前:nobodyさん mailto:sage [2009/01/10(土) 21:26:59 ID:???]
コントローラー名を変えたときっぽいな

Postコントローラーなのに

<?php echo $form->create('Post', array('action' => 'edit')); ?>

としても、 action="posts/edit" になりやがる

なんでこんなバグだらけなんだよ…

280 名前:nobodyさん mailto:sage [2009/01/10(土) 21:30:15 ID:???]
ちょっと本体のコード読むと分かるけど
汎用化すべきところも各所で独自実装してるからね
ライブラリごとの整合性や競合といった問題が出てくる

281 名前:nobodyさん mailto:sage [2009/01/10(土) 21:33:55 ID:???]
FWなのに、ソース見て、結局オーバーライド
意味ねーよ…

1.2finalでこれでしょ?

もうちょいなんとかしてほしいなぁ

282 名前:nobodyさん mailto:sage [2009/01/10(土) 21:38:22 ID:???]
割と平凡な機能しかないサイトでもそうなるよね
Securityコンポーネントもそうだけど
汎用的な機能すらバグ持ちかつ仕様がおかしかったり機能不足だったり

他のFWはどうなんだろうなあ

283 名前:nobodyさん mailto:sage [2009/01/10(土) 21:44:53 ID:???]
いや、ほんと平凡なサイトなんだけど、バグありすぎだよ…
ぱっと見はたしかに早いんだけど、使えるレベルに引き上げるのに相当苦労する気が

とりあえずformヘルパー使うのやめて直書きする
formヘルパー拡張してトークン出力メソッドだけ使うわ orz

284 名前:nobodyさん mailto:sage [2009/01/10(土) 21:47:38 ID:???]
そうそう
んで、ライブラリ類継承しようとしても、コアライブラリへのパス定数ないのね

なんかいまいち甘いよね
ぱっとみ手軽っぽくは見えるんだけど



285 名前:nobodyさん mailto:sage [2009/01/10(土) 22:00:30 ID:???]
ありゃ formHelper継承して $helpers = array('MyForm') しても
ビューで $myform 使えないぞw

Helperクラス継承せんといけんのか?
拡張性低すぎだろ…

286 名前:nobodyさん mailto:sage [2009/01/10(土) 22:13:06 ID:???]
Myform extends FormHelperにしたら
$myformで参照できたわ

MyFormだと$my_formでも$myformでも参照できない
ヘルパーには大文字一つしか使えないんか?

なんでこんなとこで苦労しなきゃいけないんだよw

287 名前:nobodyさん mailto:sage [2009/01/10(土) 22:14:07 ID:???]
ビューにデフォルトでセットしてるのは
コントローラのほうじゃないの

288 名前:nobodyさん mailto:sage [2009/01/10(土) 22:14:53 ID:???]
Cake使ってるとコアのコードにハックする事が多すぎるんだよな


289 名前:nobodyさん mailto:sage [2009/01/10(土) 22:15:14 ID:???]
あ、 $myForm で参照できたわ

どういう命名規則だよ…

キャメルケースは _ だろ…ファイル名もそうだし

なんか一気にいやになってきたなー

かといって他にあんまりいいのないんだよな

290 名前:nobodyさん mailto:sage [2009/01/10(土) 22:16:55 ID:???]
>>287

ちゃんとやってるよ

my_helper.php:
MyFormHelper extends FormHelper

コントローラー:
 $helpers = array('MyForm');

んで、ビューでは$myFormで参照したらいけた

ヘルパーのクラス名だけ命名規則がおかしいだろ…

291 名前:nobodyさん mailto:sage [2009/01/10(土) 22:25:05 ID:???]
自前でトークン出力してみたが、
ルーティングしてるとSecurityコンポーネント使えないな

ほんとにFWなのか疑問に思ってきたぞ…

292 名前:nobodyさん mailto:sage [2009/01/10(土) 22:58:06 ID:???]
>>279の件は

<?php echo $form->create('Post', array('url' => '/post/edit')); ?>

でurl使えばいけそうな感じなんだが、
Securityコンポーネントをあきらめてはずしたら、セッションが使えなくなった
Sessionコンポーネントもヘルパーも使ってるのに

だんだん頭にきてきた

293 名前:nobodyさん mailto:sage [2009/01/10(土) 23:05:43 ID:???]
あ、自分がミスってたわw

formヘルパーの吐くaction属性の件は

<?php echo $form->create('Post', array('url' => '/post/edit')); ?>

でうまくいった

もっともSecurityコンポーネント使えない問題は残るが…
もうちょいバグ少ないFWないのかね…

294 名前:nobodyさん mailto:sage [2009/01/10(土) 23:14:50 ID:???]
バグがあるなら、開発者に連絡しとけよ



295 名前:nobodyさん mailto:sage [2009/01/10(土) 23:34:57 ID:???]
そこまで使い込んでないし
使い続けるかわからんので、常連さん、お願いしますねーw

296 名前:nobodyさん mailto:sage [2009/01/10(土) 23:42:11 ID:???]
まぁチケットあげるにしても原因がわからんとなぁ

Securityコンポーネントとルーティングつかってるときに
404エラーになる原因の目星ある?

コントローラー名かHTTP_REQUEST関係あたりかな
とは思ってるんだけど、目星つかないとなぁ

297 名前:nobodyさん mailto:sage [2009/01/11(日) 00:25:09 ID:???]
コントローラで共通して使うような関数はコンポーネント
ビューで共通して使うような関数はヘルパ
に実装すると思いますが、
コントローラでもビューでも使うような関数はどこに実装するのが
cakephp のやり方ですか?


298 名前:nobodyさん mailto:sage [2009/01/11(日) 01:06:51 ID:???]
【質問】$form->input()のtextareaの幅(cols)の変更が出来なくて困ってます。
$form->input('honbun', array('type'=>'textarea', 'cols'=>'10', 'rows'=>'5');
行数(rows)は指定どおり変化してくれます。
cake.generic.cssのどこかを修正すれば良さそうな所まで調べましたが、具体的に
どこをどう修正すれば良いかわかりません。よろしくお願いします。

299 名前:nobodyさん mailto:sage [2009/01/11(日) 01:38:19 ID:???]
>>297
普通のライブラリならvendersにでも入れて
App::importでいいんじゃね

300 名前:nobodyさん mailto:sage [2009/01/11(日) 03:35:55 ID:???]
規約からちょっとはずれると
途端におかしな動作しだすな、このフレームワーク…

301 名前:nobodyさん mailto:sage [2009/01/11(日) 03:59:04 ID:???]
Formヘルパー使うとHTMLソースが一行続きになる orz

302 名前:nobodyさん mailto:sage [2009/01/11(日) 08:53:45 ID:???]
stable出ても、まだバグがあるの?
というか、今までのバグは本家に報告してないの?

303 名前:nobodyさん mailto:sage [2009/01/11(日) 09:24:13 ID:???]
日本語公式サイトに報告フォーム作るくらいはすべき

304 名前:nobodyさん mailto:sage [2009/01/11(日) 12:04:42 ID:???]
チケット出しておけばたいていのバグはなおしてくれるのに
ここで文句ばっかり言ってるやつってなんなの?



305 名前:nobodyさん mailto:sage [2009/01/11(日) 12:23:51 ID:???]
使い続けるかもわからない上に
原因特定できないのにチケット出す意味ない

その辺は日本公式(?)がうまく立ち回ってもらいたいところ

306 名前:nobodyさん mailto:sage [2009/01/11(日) 12:36:15 ID:???]
再現手順さえあればチケット出せば良いだろうけど
英語書くの遅いから嫌だ

大体、そんな苦労しなくても最初から使えるFWを使いたい


307 名前:nobodyさん mailto:sage [2009/01/11(日) 12:38:18 ID:???]
使い始めたばかりでバグかどうかも特定できていないのに騒ぐやつは無視で良い

308 名前:nobodyさん mailto:sage [2009/01/11(日) 13:11:03 ID:???]
手順書いてるんだからバグかわかるだろw

それとも新参者ばかりなの?w

309 名前:nobodyさん mailto:sage [2009/01/11(日) 15:49:46 ID:???]
この流れひでえなw

310 名前:nobodyさん mailto:sage [2009/01/11(日) 15:58:13 ID:???]
コアに手入れたりすると
別のエンジニアが保守し辛くなるし
FWの良さがなくなる

311 名前:nobodyさん mailto:sage [2009/01/11(日) 18:00:58 ID:???]
バグだらけなのがCakePHPの特徴だろw
1.0正式版が出たときもそうだったぜ。
そこを自分で何とかするのがBaker。

文句いう人は他のFWを使えばいいと思う

312 名前:nobodyさん [2009/01/11(日) 19:36:58 ID:e07paZUF]
2年後くらいにcakeがまともになってたらまたきます><

313 名前:nobodyさん mailto:sage [2009/01/11(日) 20:09:38 ID:???]
全然オブジェクト指向じゃないしなあ

314 名前:nobodyさん mailto:sage [2009/01/11(日) 21:14:41 ID:???]
PHP4対応なのになんでオブジェクト指向だと思ったの



315 名前:nobodyさん mailto:sage [2009/01/11(日) 21:53:49 ID:???]
コード分ければ出来るじゃん

316 名前:nobodyさん mailto:sage [2009/01/11(日) 22:57:27 ID:???]
クラス使われているんだからオブジェクト指向であってるよ。

317 名前:nobodyさん mailto:sage [2009/01/12(月) 00:44:27 ID:???]
クラス使ってるからオブジェクト指向(笑)

318 名前:nobodyさん [2009/01/12(月) 08:02:17 ID:JmkPO6xq]
PHP自体が関数指向で配列をぶん回すタイプの言語だからな
オブジェクト指向言語の基本的な要素は持ってるけど
実際にオブジェクト指向プログラミングをやろうとすると苦労が多い
cakeのapi設計もrailsからパクった部分はオブジェクト指向的だが、cake拡張部分は関数っぽくなてる


319 名前:nobodyさん mailto:sage [2009/01/12(月) 08:48:04 ID:???]
Railsをパクるだけにしていてほしい

320 名前:nobodyさん [2009/01/12(月) 09:04:16 ID:3zI01Xa5]
またまたバグ発見

formヘルパーで、フィールド名 (field)に数字を渡すと、
0のときだけ中身が消える

$form->text('0');

とか

empty()とかでしかチェックしてないっぽいな
string型にキャストしても駄目だし

321 名前:nobodyさん mailto:sage [2009/01/12(月) 09:05:10 ID:???]
$form->text('data[0]');

で動けばいいが、動かないし

322 名前:nobodyさん mailto:sage [2009/01/12(月) 09:17:19 ID:???]
appごとにコアのファイルをオーバーライドしないと使えないな
appディレクトリの意味ねー

323 名前:nobodyさん mailto:sage [2009/01/12(月) 09:38:56 ID:???]
なんじゃこりゃ
appディレクトリ側で /view/helper.php の置き換えできないのか?

324 名前:nobodyさん mailto:sage [2009/01/12(月) 09:42:41 ID:???]
cakephp.jp/modules/newbb/viewtopic.php?topic_id=377&forum=9&post_id=669



325 名前:nobodyさん mailto:sage [2009/01/12(月) 09:44:45 ID:???]
とん

ってまじかよ

helper.phpにバグあるんだが、直接編集しかないのかよ
FWのはずがコアのバグつぶしにすり替わって、全然進まない

326 名前:nobodyさん mailto:sage [2009/01/12(月) 09:55:09 ID:???]
とりあえず、バグっぽいとこ教えとくから、常連さんはチケットでもあげといてくれ
俺はたぶん、次回はもうCakeは使わない

 $form->text('0');

とかやると、0のときだけ

 <inpute name="data[]" 〜 />

みたくなる

helper.phpのsetEntity()で、view->fieldにセットしてるとこが問題ぽい

327 名前:nobodyさん mailto:sage [2009/01/12(月) 11:06:01 ID:???]
>>326
どうしてコアに手を入れてまでフィールド名を"0"にしたいのかがわからない。

328 名前:nobodyさん mailto:sage [2009/01/12(月) 11:48:59 ID:???]
>>327
相手すんなって

329 名前:nobodyさん mailto:sage [2009/01/12(月) 11:51:38 ID:???]
>>327

手を入れたいというより、HTMLを自由に組みたかっただけなんだけどね
んだけど、規則からはずれると不具合がでまくる


ちなみに、

>helper.phpのsetEntity()で、view->fieldにセットしてるとこが問題ぽい

は $view->model の間違いかも

かなり深いところに原因があるっぽくて、結局、あきらめて

 $form->text(null, array('name' => 'data[0]'));
 $form->text(null, array('name' => 'data[item][0]'));

とかするようにした

コンポーネントとか使う場合に、また問題がでるかもしれないけど

330 名前:nobodyさん mailto:sage [2009/01/12(月) 11:54:41 ID:???]
DB使わないモデルや、
他のシステムと連携する場合に、数値の配列形式の方が扱いやすいから

まぁ、html手打ちでもいいんだけどさ
ヘルパーとかが規約と強く結びつきだなと思った

331 名前:nobodyさん mailto:sage [2009/01/12(月) 12:03:43 ID:???]
質問です

データ追加フォーム -> データ追加 -> トップ画面にリダイレクト

としようと思うのですが、アクション名に悩んでます

add() -> ??? -> index()

???の部分をどうしようかと…

add()で分岐してもいいんですが、分けたいのですが、
なにかいい名前ありませんかね?

確認画面とかなら add_confirm() にするんですが。

332 名前:331 mailto:sage [2009/01/12(月) 12:05:43 ID:???]
>>331

実際は add_item() という名前なのですが、
追加するだけのアクション名をどうしようかなと、いうことです

add_???_item() か ???_item() で
なにかいいアクション名ありませんか?

333 名前:331 mailto:sage [2009/01/12(月) 12:07:32 ID:???]
連投ごめんなさい…

update_item() とかどうですかね?

add_item()とedit_item()から共通で使えそうですし

334 名前:nobodyさん mailto:sage [2009/01/12(月) 12:29:53 ID:???]
update_itemでいいんじゃね?



335 名前:nobodyさん mailto:sage [2009/01/12(月) 16:21:35 ID:???]
ここでバグバグ言われてるのって使い方解ってないだけなんじゃないのか

336 名前:nobodyさん mailto:sage [2009/01/12(月) 16:24:13 ID:???]
じゃあどう使えば良いのか説明しろよ

337 名前:nobodyさん mailto:sage [2009/01/12(月) 16:54:47 ID:???]
book.cakephp.org/

338 名前:nobodyさん mailto:sage [2009/01/12(月) 16:57:12 ID:???]
そんなところは熟読した上での話だと思うが

339 名前:nobodyさん mailto:sage [2009/01/12(月) 16:58:39 ID:???]
本家に報告したくないってのはバグじゃなくて
自分の使い方がおかしいという自覚があるからに他ならないだろ

340 名前:nobodyさん mailto:sage [2009/01/12(月) 17:08:56 ID:???]
再現方法書いてるのにバグかどうかもわからんの?

それとも、規約通りにしか作れない初心者しかいないのか?

341 名前:nobodyさん [2009/01/12(月) 17:09:25 ID:JmkPO6xq]
バグではない
単にcakeの開発者が意図した使い方からはみ出ると途端に挙動が変になるだけ

342 名前:nobodyさん mailto:sage [2009/01/12(月) 17:10:38 ID:???]
>>341

www

それならバグではないかもなwww

そうか、バグじゃないのか〜
使えないFWだな〜

343 名前:nobodyさん mailto:sage [2009/01/12(月) 17:11:01 ID:???]
フレームワーク使ってて規約はずれたら動かなくなったってそっちの方が初心者だろ

344 名前:nobodyさん mailto:sage [2009/01/12(月) 17:11:49 ID:???]
機能不足、仕様が変、というのが正しいな
バグと言っても良いレベルのものもたくさんあるが
組み込みで提供されてる機能が競合するのはバグと言っても良いだろ

>>339
偏屈こねる前に10回くらい読み直せ



345 名前:nobodyさん mailto:sage [2009/01/12(月) 17:16:56 ID:???]
いやだから本当にバグだと思うなら本家に報告しなよ

346 名前:nobodyさん mailto:sage [2009/01/12(月) 17:17:09 ID:???]
>>343

そうだね

公式ドキュメントの半分以上は無視したほうがいいね!
設定もなんにも変えないほうがいいね!

www

347 名前:nobodyさん mailto:sage [2009/01/12(月) 17:20:07 ID:???]
報告したところで今やってる案件には意味ないし
次は絶対に使わないから
Cakeの開発スピードからして見つけたバグ全部修正されるのに半年はかかりそうw

348 名前:nobodyさん mailto:sage [2009/01/12(月) 17:20:48 ID:???]
間違えてCakeなんかを使ってしまう人を増やさないようにしないとな

349 名前:nobodyさん mailto:sage [2009/01/12(月) 17:21:25 ID:???]
>>347

きみは別人だろw

きみもいやになったのか?

350 名前:nobodyさん mailto:sage [2009/01/12(月) 17:21:58 ID:???]
1.2が公式にリリースされて危機感を持っている奴がいるらしいな
どのフレームワークの信者だ

351 名前:nobodyさん mailto:sage [2009/01/12(月) 17:23:00 ID:???]
>>347

次なに使うの?

352 名前:nobodyさん mailto:sage [2009/01/12(月) 17:23:19 ID:???]
>>349
別人?なにを言ってるんだ
おまえは誰か特定の相手に話しかけてるのか?こんな場所で?

俺は今回の話題ではCakeはバグ大杉使えないFW派だよ

353 名前:nobodyさん mailto:sage [2009/01/12(月) 17:23:30 ID:???]
まぁこれからCake使うやつに助言

規約からはずれたことはするな
でも、それじゃあ大した物は作れない

組み込みのライブラリは使うな
全部自分で一から書け

FW使う意味ねーw
まぁぱっとみ使いやすいとは思うんだけどね
ここまでバグ多いとな…

354 名前:nobodyさん mailto:sage [2009/01/12(月) 17:23:49 ID:???]
>>351
SAStrutsかDjango



355 名前:nobodyさん mailto:sage [2009/01/12(月) 17:25:25 ID:???]
ちなみにCakeはオブジェクト指向じゃないって話あったけど
問題なのはAPIじゃなくてコアのコード内部なんだよね
ハックするのも一苦労

あのスパゲッティな有様じゃCakeの将来は危ういよ

356 名前:nobodyさん mailto:sage [2009/01/12(月) 17:26:23 ID:???]
というかPHPのFWはまともなのがないな

Yiiとかってどうよ

357 名前:nobodyさん mailto:sage [2009/01/12(月) 17:54:39 ID:???]
>>354
レンタルサーバで動かす気ない人か

358 名前:nobodyさん mailto:sage [2009/01/12(月) 17:55:17 ID:???]
PHPでオブジェクト指向ってもっさりフレームワークの登竜門だろw

359 名前:nobodyさん mailto:sage [2009/01/12(月) 17:58:23 ID:???]
Cakeは既にあらゆるフレームワークの中で最も重い部類

360 名前:nobodyさん mailto:sage [2009/01/12(月) 18:05:28 ID:???]
で、なんかいいのないのか?

兄弟とか言われてるCIは、命名規則に統一性が乏しいし

361 名前:nobodyさん mailto:sage [2009/01/12(月) 18:06:17 ID:???]
>>359

362 名前:nobodyさん mailto:sage [2009/01/12(月) 19:32:11 ID:???]
でも、世界でsymfony、zend+frameworkを抜き、最も注目されているPHP FWという事実は
どう理解すればいいの?
www.google.com/trends?q=cakephp%E3%80%81symfony%E3%80%81zend+framework%E3%80%81mojavi%E3%80%81ethna

363 名前:nobodyさん mailto:sage [2009/01/12(月) 19:35:28 ID:???]
PHPのユーザ層が重視するのは簡単に導入できる事と
HOWTO情報の多さだからでしょ
使ってる人たちはCakeしか使ったことないんじゃないの

364 名前:nobodyさん mailto:sage [2009/01/12(月) 19:40:29 ID:???]
PHPったって殆どの人は楽天やGREEを作る訳じゃないんだから
重さって気にする意味無いよね
重さで言えばRoRとか死ぬほど重いんだし



365 名前:nobodyさん mailto:sage [2009/01/12(月) 19:43:30 ID:???]
重いのは誰も問題にしてないけどね

366 名前:nobodyさん mailto:sage [2009/01/12(月) 20:59:16 ID:???]
すみません>>298なんですが
$form->input('honbun', array('type'=>'textarea', 'cols'=>'10', 'rows'=>'5'));
で横幅のせまいtextareaを表示したいのですが、何かヒントありませんか?

367 名前:nobodyさん mailto:sage [2009/01/12(月) 21:10:40 ID:???]
ところで、セッションってモデルだと思うんだが、
なんで、モデルで使えないのかね

368 名前:nobodyさん mailto:sage [2009/01/12(月) 21:13:12 ID:???]
セッションはモデルじゃねーよw

369 名前:nobodyさん mailto:sage [2009/01/12(月) 22:33:10 ID:???]
>>366
cake.generic.css
input, textarea {
width: 100%; ←これ?
}

370 名前:nobodyさん mailto:sage [2009/01/12(月) 22:57:16 ID:???]
>>369
app/webroot/css/cake.generic.css
input, textarea {
  /* width: 100%; */
}
width: 100%をコメントにすることで
$form->input('honbun', array('type'=>'textarea', 'cols'=>'80', 'rows'=>'5'));
textareaの横幅(cols)設定が有効になるようになりました。ありがとうございました。
合わせて、
$form->input('meado', array('type'=>'text', 'size'=>'50'));
のsize設定も有効になり二重の喜びです。ありがとうございました。

371 名前:nobodyさん mailto:sage [2009/01/12(月) 23:07:20 ID:???]
>>368

そうか?
データのやりとりするんだから、モデルだと思うけど?
まあ場合にもよるだろうけど

372 名前:nobodyさん mailto:sage [2009/01/12(月) 23:11:10 ID:???]
セッションはモデルじゃないよ
データを永続化するのがモデルであって
セッションってのはデータでhiddenで引き回してるのと同じようなことだから

373 名前:nobodyさん mailto:sage [2009/01/12(月) 23:33:55 ID:???]
なんでこんな使いにくくてバギーなcakephpが人気あるんかね?
たしかに、とっつきやすさはsymfonyやzendよりも上だと思うが
それだけなんだよね。
PHP使ってるやつはプログラム自体初心者が多いんだろね。
チュートリアル作って終わりなやつが多いんじゃね?

374 名前:nobodyさん mailto:sage [2009/01/12(月) 23:39:43 ID:???]
玄人の言語で作れば?



375 名前:nobodyさん mailto:sage [2009/01/12(月) 23:44:35 ID:???]
確かにPHPを使う意味なんてないんだよね
フレームワークを使うほどの開発になった時点で

376 名前:nobodyさん mailto:sage [2009/01/12(月) 23:50:55 ID:???]
殆どのものはレンタルサーバで動かすんだからPHPかPerlじゃないと動かんわね
専用サーバならJavaにした方が楽だし

377 名前:nobodyさん mailto:sage [2009/01/12(月) 23:52:44 ID:???]
>>375
いいこというね〜
PHPが最高に輝く使い方だね。

378 名前:nobodyさん mailto:sage [2009/01/12(月) 23:56:14 ID:???]
好きな言語すら入れられない環境の方がかなりマイナーだと思うよ
個人だろうと企業だろうと普通はその程度の自由度はある環境でやってるよ

379 名前:nobodyさん mailto:sage [2009/01/13(火) 00:36:35 ID:???]
企業で大規模にやるような開発でCakeやRoRみたいなのは使わないと思うよ
レンタルサーバで動かすCMSとかDBのCRUDがメインのシステムならぴったりだけどさ

380 名前:nobodyさん mailto:sage [2009/01/13(火) 11:22:28 ID:???]
セキュリティ面のバグの多さからWWWに出す時点でCakeは良くない

381 名前:nobodyさん mailto:sage [2009/01/13(火) 11:48:16 ID:???]
>>379
TwitterやCookPad、楽天でもRoRを使ってるのすら知らんのか。

そういえばここCakePHPスレだったなw

382 名前:nobodyさん mailto:sage [2009/01/13(火) 13:31:48 ID:???]
>>379
> DBのCRUDがメインのシステム

ほとんどの会社で必要とされるシステムって、それだぞ?w

383 名前:nobodyさん mailto:sage [2009/01/13(火) 15:39:41 ID:???]
RoRを覚えるのが面倒というのもあるな
Ruby動かせないときもあるしなあ

384 名前:nobodyさん mailto:sage [2009/01/13(火) 21:53:50 ID:???]
>>382
実際作ってみると業務システムのパターンは極めて限られていることがわかるよね。



385 名前:nobodyさん mailto:sage [2009/01/13(火) 22:27:13 ID:???]
そうでもないけどな
データ登録以上にワークフローと帳票が多い

386 名前:nobodyさん mailto:sage [2009/01/13(火) 22:33:33 ID:???]
ワークフローと帳票といっても
結局はCRUDだしなぁ。

387 名前:nobodyさん mailto:sage [2009/01/13(火) 22:58:25 ID:???]
可哀想な人が来たな

388 名前:nobodyさん mailto:sage [2009/01/13(火) 23:03:28 ID:???]
>>387
その人、いらっしゃ〜いw

389 名前:nobodyさん mailto:sage [2009/01/13(火) 23:58:47 ID:???]
パターンは極めて限られていると見積もったCRUDシステムを
作るたびに炎上させる優秀な技術者様達

390 名前:nobodyさん mailto:sage [2009/01/14(水) 13:24:41 ID:???]
1つのテーブルにいろいろな画面(コントローラ)からアクセスする場合、
モデルは、テーブルと対になるようにして1つのモデルにするのがよいか、
それともコントローラと対にするか、どちらが一般的でしょうか?

例えば受注テーブルがあり、
あるコントローラでは受注数を表示するのがメインの処理で、
また別のコントローラでは受注金額を表示するのがメインの処理、
のような場合、受注テーブルのモデルを1つ作成するのか、それとも
コントローラ毎に作るのか…。

391 名前:nobodyさん mailto:sage [2009/01/14(水) 13:42:37 ID:???]
おまえはMVCの基本についてすべて一つ一つt質問するつもりか

392 名前:nobodyさん mailto:sage [2009/01/14(水) 13:44:19 ID:???]
>>390
無論、モデルはひとつ。

393 名前:nobodyさん mailto:sage [2009/01/14(水) 13:45:45 ID:???]
>>390
コントローラーってのは要するに人がプログラムにアクセスする時のURLなわけよ。
だから人から見てわかりやすけりゃ良いわけで、モデルと対になってる必要なんて無い。
ってのが俺の考え。
逆に同じテーブルにモデルがいくつもあったらプログラム作る時に混乱するんじゃない?
それぞれ特殊なfindメソッドでも作ってるんなら別だけど。

394 名前:nobodyさん mailto:sage [2009/01/14(水) 14:52:22 ID:???]
サブホストや接続IPによってDB接続先を変える方法知ってる?



395 名前:nobodyさん mailto:sage [2009/01/14(水) 14:53:24 ID:???]
やっぱりモデルは1つにまとめるべきなんですね。

今回質問したのは、>>393
「それぞれ特殊なfindメソッドでも作ってるんなら別だけど。 」
がまさしくそれで、取得対象のテーブルは1つなんですけど、
そのデータの取得方法や見せ方が全然違って、ただ当然コントローラは
個別に存在するので、
1つのテーブルを元にその見せ方毎にモデルを作りモデルの中で、
var $name = 'table'; としておきつつ、
それぞれの取得するためのメソッドを作成していこうかな、と思い作りはじ
めた矢先、取得テーブルは1つなので、そのモデルに全部メソッドをまとめた
ほうがいいのか?と迷いはじめてしまい…。

テーブル単位にメソッドをまとめるのか、機能毎にモデルを分割するのか…。

まだまだ精進がたりませんね、大変すみませんでした。

396 名前:nobodyさん mailto:sage [2009/01/14(水) 15:08:08 ID:???]
>>394
ttp://d.hatena.ne.jp/charly24/20070512/1178956046

397 名前:nobodyさん mailto:sage [2009/01/14(水) 15:11:54 ID:???]
>>395
findメソッドは、カンタンにオーバーライドできる

テンプレの↓参照
CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/


398 名前:nobodyさん mailto:sage [2009/01/14(水) 15:49:49 ID:???]
>>395
>テーブル単位にメソッドをまとめるのか、機能毎にモデルを分割するのか

一律的な分け方をすると後で縛りがきつくなるから
機能目的によってバランスよく分別した方がよい



399 名前:nobodyさん mailto:sage [2009/01/14(水) 15:51:45 ID:???]
むしろ厳密に言えば両方違う
2モデルを1つのテーブルに格納することが可能だから

400 名前:nobodyさん mailto:sage [2009/01/14(水) 15:59:26 ID:???]
テーブルやモデルの対に関して議論することがアホらしいw
後退的議論で無意味


401 名前:nobodyさん mailto:sage [2009/01/14(水) 16:02:02 ID:???]
どんなケースも可能だから
何を作るか?どんな機能を作るかを前提してから
モデルとテーブルの対の議論をしないと
抜け穴からのもぐら叩き合戦になるよ

402 名前:nobodyさん mailto:sage [2009/01/14(水) 20:32:29 ID:???]
1.1と1.2って大分違いますか?
ガイドブック買ってやってみたけど早々に躓いて
しまいました。

403 名前:nobodyさん mailto:sage [2009/01/14(水) 21:28:26 ID:???]
1.1と1.2は大分違うと思う。
ガイドブックで1.2で始めるのは初心者にはつらいと思う。
「CakePHP徹底入門」は1.2で書いてあるから1.2入門者にお勧め。
ガイドブックも良著だから、1.2の入門が終わってから読み直す
ことを勧めるなあ。

404 名前:nobodyさん mailto:sage [2009/01/15(木) 04:27:43 ID:???]
「CakePHP徹底入門」のamazonのレビューがよくないというか一人しか書いていない
それも星一つ。自分は少し立ち読みしただけだから何とも言えないが・・
ガイドブックは評価が高いけど




405 名前:nobodyさん mailto:sage [2009/01/15(木) 12:14:25 ID:???]
ぶっちゃけ、公式Webの情報で十分なのがPHP界隈の良いところだとおもうんだが。

406 名前:nobodyさん mailto:sage [2009/01/15(木) 18:02:47 ID:???]
>>389
> パターンは極めて限られていると見積もったCRUDシステムを
> 作るたびに炎上させる優秀な技術者様達

なんで炎上させないといけないんだよw
お前の会社か?それ。

407 名前:nobodyさん mailto:sage [2009/01/15(木) 19:16:12 ID:???]
viewのキャッシュする直前にキャッシュする対象をいじりたいんだけど
なんかいい方法あるのかな

408 名前:nobodyさん mailto:sage [2009/01/15(木) 23:13:14 ID:???]
SQLiteとMySQLを同時に使うのって可能?

409 名前:nobodyさん mailto:sage [2009/01/15(木) 23:16:50 ID:???]
可能。

410 名前:nobodyさん mailto:sage [2009/01/16(金) 00:17:54 ID:???]
なにそれ、どうやんだ?

411 名前:nobodyさん mailto:sage [2009/01/16(金) 00:21:09 ID:???]
DATABASE_CONFIGに複数設定して切り替えるだけだろ

412 名前:nobodyさん mailto:sage [2009/01/16(金) 01:45:44 ID:???]
そりゃだるいな

413 名前:nobodyさん mailto:sage [2009/01/16(金) 16:24:26 ID:???]
>>412
モデルに使用する、データベースを指定する以外で、
だるく無い方法があるのか?

414 名前:nobodyさん mailto:sage [2009/01/16(金) 17:30:29 ID:???]
>>413
アホはほっとけ



415 名前:nobodyさん mailto:sage [2009/01/16(金) 18:16:16 ID:???]
Model::$validateで値そのものを利用して'message'を動的に設定ってできますか?
'この番号は使用できません'って出力してdata[]にそのまま残すのも間抜けなので、
data[]を使用した'message'を設定してdata[]消したいんですけどよく分かりません

通常ルールでのチェックも行っているので、View側でエラーメッセージチェックしてから
特定のエラーメッセージのときだけdata[]からメッセージ作成して
input value= にセットされないように処理するって何か変な気がしたので

416 名前:nobodyさん mailto:sage [2009/01/16(金) 18:30:22 ID:???]
メソッド内でうまいことエラーメッセージを書き換えられればいいんだろうけど

説明下手なきがするのでやりたいこと
入力フォーム→結果の表示フォームとエラー
[ab]→[ab]数字で入力しやがれ
[25]→[25]25は使えねえぜ

417 名前:nobodyさん mailto:sage [2009/01/16(金) 21:29:52 ID:???]
emailコンポーネントって文字化けするよね
しかも普通にPHP標準のメール送信機能使うと化けないケースで化けたりするから困る
また組み込みライブラリの糞ソースを修正する作業が始まるのか・・・

418 名前:nobodyさん mailto:sage [2009/01/16(金) 21:37:31 ID:???]
emailコンポーネントを継承して
問題ないようにしているけど?

オブジェクト指向になっているおかげで
いくつかのメソッドをオーバーライドするだけですんだ。

419 名前:nobodyさん mailto:sage [2009/01/16(金) 21:40:49 ID:???]
文字化けしないよ別に
ファイルの文字コードとか問題ないの?

420 名前:nobodyさん mailto:sage [2009/01/16(金) 22:28:03 ID:???]
toに全角使うと化ける
本文も特定のパターンで化ける

421 名前:nobodyさん mailto:sage [2009/01/16(金) 22:36:11 ID:???]
toはエンコしなきゃ化けるだろそりゃ

422 名前:nobodyさん mailto:sage [2009/01/16(金) 22:38:28 ID:???]
だからそれをコンポーネント内部でなんでやってないの?って話だよ

423 名前:nobodyさん mailto:sage [2009/01/16(金) 22:39:12 ID:???]
toってset()じゃなくてプロパティに直接設定するようになってるけど
どうやってエンコはさめばいいの?
本体のコード見て解析してエンコードはさむくらいしか思いつかないんだけど。

424 名前:nobodyさん mailto:sage [2009/01/16(金) 22:42:13 ID:???]
最後に送信するときにでもやればいい。



425 名前:nobodyさん mailto:sage [2009/01/16(金) 22:47:48 ID:???]
>>422
世の中には日本語以外もあるわけでな
必要なら日本人が修正してコミットすべき部分だろうに

426 名前:nobodyさん mailto:sage [2009/01/16(金) 22:49:09 ID:???]
そんなに不満だらけなら他のFW使えばいいじゃん
メールのエンコードも完璧なFWをさ

427 名前:nobodyさん mailto:sage [2009/01/17(土) 10:19:42 ID:???]
1.2.1

428 名前:nobodyさん mailto:sage [2009/01/17(土) 11:36:23 ID:???]
お、今度はstableを謳ってる
# If you are using AuthComponent without SecurityComponent you should update to CakePHP 1.2.1.8004 asap (gwoo)
だってさ

429 名前:nobodyさん mailto:sage [2009/01/17(土) 11:38:12 ID:???]
1.2 CheatSheet キタ━━━━(゚∀゚)━━━━!!!!
cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf

430 名前:nobodyさん mailto:sage [2009/01/17(土) 13:58:26 ID:???]
>>428
なにがかわったんだ?

431 名前:nobodyさん mailto:sage [2009/01/17(土) 14:40:37 ID:???]
>>429
これはいいね。早速プリントした。
あと、毎回html->linkの何番目をfalseだっけ?ってマニュアル見なきゃならん俺のために
付属のヘルパー分もお願いしたい。

432 名前:nobodyさん mailto:sage [2009/01/18(日) 11:31:02 ID:???]
>>430
groups.google.com/group/cake-php/browse_thread/thread/659682805f3d71d7

Essentially, an attacker may be able to obtain credentials as the first user of the system.
If you are interested in testing your site, you can use the SQL Inject Me plugin
for Firefox

433 名前:nobodyさん mailto:sage [2009/01/19(月) 16:13:21 ID:???]
会員登録時とかで、パスワードが勝手にハッシュ化されるけど
確認画面いって入力画面に戻るとハッシュ化されたものがパスワードのとこに入る
そしてまた確認画面に行くと再度ハッシュ化される
登録されるのは2度ハッシュ化されたデータ
当然認証は通らない

これはどうすれば?

434 名前:nobodyさん mailto:sage [2009/01/19(月) 16:21:13 ID:???]
パスワード消す



435 名前:nobodyさん mailto:sage [2009/01/19(月) 16:23:37 ID:???]
詳しく

436 名前:nobodyさん mailto:sage [2009/01/19(月) 17:12:40 ID:???]
入力画面に戻るときに消していいんなら
formへるぱーで'value'=>false指定すればよろし

437 名前:nobodyさん mailto:sage [2009/01/19(月) 17:15:56 ID:???]
再入力させるのはなぁ
既にハッシュ化してるんだからそのまま入れてもセキュリティ上問題無いのに
ハッシュ化されていれば再ハッシュ化は行わないようになってくれてたら良かった

フォームのパスワードの初期値と送信されたデータが同じだったらハッシュ化はしない
とするだけで出来たはずなのにな

438 名前:nobodyさん mailto:sage [2009/01/19(月) 17:38:24 ID:???]
ちょっとコード読んでみたけど
ハッシュ化のタイミングでセッションは既に今送信されたデータに書き換えられてて
元あったものとの比較が出来なくなってる

これ以上手間が要るならめんどくさいなー

439 名前:nobodyさん mailto:sage [2009/01/19(月) 17:45:57 ID:???]
確認用の入力分を使えばいいんじゃねえの?

440 名前:nobodyさん mailto:sage [2009/01/19(月) 18:11:18 ID:???]
確認入力のバリデーションと競合して分け分かんなくなってきた
どういう仕様になってるんだろ

passwordフィールドはハッシュ化されるが
password_confirmはハッシュ化されない
おかげで確認画面にいってから戻るとパスワードが違うと言うエラーが出る問題も絡んでくる


441 名前:nobodyさん mailto:sage [2009/01/19(月) 18:17:05 ID:???]
やはり確認用の入力を使うと言う手段が本筋じゃないな
passwordもpassword_confirmも同様にハッシュ化して
フォームの初期値から変更がなければハッシュ化は行わない、
と言う設計にすべきだと思う

でもこれをやるには今のAuthコンポーネントの仕様からじゃだいぶ手間がかかる

442 名前:nobodyさん mailto:sage [2009/01/19(月) 18:26:26 ID:???]
つーかもう
Authの自動ハッシュ化を無くして
手動でハッシュ化するのが一番楽だわ

443 名前:nobodyさん mailto:sage [2009/01/19(月) 19:02:35 ID:???]
cakeは謙虚な心がないと使いこなせない

444 名前:nobodyさん mailto:sage [2009/01/19(月) 19:20:43 ID:???]
ハッシュ化なんてユーザパスワードくらいでしかやってないし
自動ハッシュ化止めてセーブ時とログイン時にハッシュ化するようにしたらできたくせえ!



445 名前:nobodyさん mailto:sage [2009/01/19(月) 22:36:21 ID:???]
form部分は
name="raw_password"
name="raw_password_confirm"
にしといて、
validateでは、
raw_passwordとraw_password_confirmを比較
saveの前にpassword = raw_passwordしとくのは?

446 名前:nobodyさん mailto:sage [2009/01/19(月) 22:42:10 ID:???]
それもいいかもね
コンポーネントに手入れ無くて良いし
でもAuthで暗黙的にハッシュ化されるわりにそれを意識したコーディングになってるから
違和感はあるけどね
それなら明示的に書く方が、とおもう

447 名前:nobodyさん mailto:sage [2009/01/20(火) 00:34:26 ID:???]
Validationで戻ったときはパスワードは再入力させる方が一般的だと思うけどね。

448 名前:nobodyさん mailto:sage [2009/01/20(火) 00:36:53 ID:???]
あぁ、そういう話か。
普通再入力の際にはパスワードは消えてるでしょ

449 名前:nobodyさん mailto:sage [2009/01/20(火) 02:09:06 ID:???]
エレメントを呼び出すんじゃなくて
ビューからアクションを呼び出す事って出来ないのかな?

450 名前:nobodyさん mailto:sage [2009/01/20(火) 02:15:23 ID:???]
事故解決

451 名前:nobodyさん [2009/01/20(火) 02:47:07 ID:W42hdWVL]

iis,oracle,php5インストール後、
cakePHP入れて、ブログのチュートリアルやってんだけど、
ビュー作って確認するところのテーブル一覧表示で日本語データが表示されません。
半角英数ですと表示されます。数値、日時も問題なく表示されています。
db内には、正しい全角データが入っているのですが、
なぜでしょう?



452 名前:nobodyさん mailto:sage [2009/01/20(火) 02:49:30 ID:???]
>>451
ソースの文字コードとMySQLの文字コード確認

453 名前:nobodyさん [2009/01/20(火) 02:50:47 ID:W42hdWVL]

両方、utf8です。

454 名前:nobodyさん mailto:sage [2009/01/20(火) 03:21:49 ID:???]
そもそもoracleか・・



455 名前:nobodyさん mailto:sage [2009/01/20(火) 11:56:56 ID:???]
>>452
oracleだと書いてあるだろボケ
なにがMySQLの文字コードだよ


456 名前:nobodyさん mailto:sage [2009/01/20(火) 13:54:45 ID:???]
>>451
phpのinternal_encodingとかその辺の設定確認
あとcakeを介さず直接接続→出力が文字化けするか否か確認


457 名前:nobodyさん mailto:sage [2009/01/20(火) 15:52:01 ID:???]
>>455
www

458 名前:nobodyさん mailto:sage [2009/01/20(火) 16:57:25 ID:???]
あれ、一人だけID出てるな

459 名前:nobodyさん [2009/01/20(火) 17:03:38 ID:b4+xy3zg]
sage無きゃ出るでしょ

460 名前:nobodyさん mailto:sage [2009/01/20(火) 17:07:06 ID:???]
なるほどそういうことか

461 名前:nobodyさん mailto:hage [2009/01/20(火) 17:13:23 ID:???]
sage無くても出ないけどね

462 名前:nobodyさん mailto:sage [2009/01/20(火) 17:41:48 ID:???]
1.2なってからのfindやinputの修正は地味だけど良いね
非常に分かりやすくなった

463 名前:nobodyさん mailto:sage [2009/01/21(水) 01:59:22 ID:???]
scaffoldだとAuthコンポーネントってちゃんと働かない?
webルートにアクセスすると、一応/users/loginへ
リダイレクトされるんだけど、そこでurlを/users/indexって
書き替えると、ログインしてなくてもユーザーの一覧が
見えてしまう。(´・ω・`)


464 名前:nobodyさん mailto:sage [2009/01/21(水) 05:54:40 ID:???]
Controllerになんか書くんじゃなかったっけ。



465 名前:nobodyさん mailto:sage [2009/01/21(水) 10:09:05 ID:???]
>>464
Controllerには許可する方を書くわけだから不要だと思う
>>463
ほかのControllerでも同じ症状なら、scaffoldが原因だろうけど、、、

466 名前:nobodyさん mailto:sage [2009/01/21(水) 10:42:49 ID:???]
空のindexを書くと、indexにはAuthが効く。
やっぱ、scaffoldが原因かなぁ。
ちゃんと全部自分で書かないとダメか。


467 名前:nobodyさん mailto:sage [2009/01/21(水) 10:48:54 ID:???]
action内でscaffoldのフローに飛ばせないのが、辛いよね
この問題にぶちあたって、結局1から書くことになる
すべてのactionを

468 名前:nobodyさん mailto:sage [2009/01/21(水) 10:55:35 ID:???]
試してないけどさ
beforeFilter()でaction名を見て、適宜login()に飛ばしてみたら?

469 名前:nobodyさん mailto:sage [2009/01/21(水) 11:01:21 ID:???]
if (in_array($this->action ,a('index' ,'etc')) && !$this->Auth->user()) {
// リダイレクト
}

470 名前:nobodyさん mailto:sage [2009/01/21(水) 11:34:17 ID:???]
認証掛けるくらいなんだから、うかつに編集されないように
scaffoldを使わないのが正しいやり方だと思う。思うけどね。

471 名前:451 mailto:sage [2009/01/21(水) 16:59:21 ID:???]
事後報告です。
>>456
> >>451
> phpのinternal_encodingとかその辺の設定確認

この辺りの設定も甘い所がありましたが、utf8で調整するも変わりませんでした。
で切り分けるためにも下を行ったのですが・・・。

> あとcakeを介さず直接接続→出力が文字化けするか否か確認

直接データもらうと、sjisで出力されてきて意味がわからず悩みました。
知っている人はなんでもないんでしょうけど。

で、結構な時間を費やしDBからデータ出力の時点があやしいとなり、
いろいろググってたら判明!
CAKEインストの時のDB設定で文字コード設定があることがわかり、
(設定した時は、どこぞのブログの設定をコピペしてきたんで文字コードを
設定している意識がなかったorz)確認するとsjisになってた、でこれをutf8へ
指定して、cakeの問題無くDBデータが表示されることが確認出来た。

で、ここで疑問が直接もらうとなぜSJISでもらうのか、
恐らくcakeでsjisからutf8へ文字コード変換してることになるんだと思うけど、

結局、oracleが出力文字コードを変えるようで、OSの環境変数を設定して、
NLS_LANG=JAPANESE_JAPAN.AL32UTF8
問題無く直でもutf8で出力されることを確認。

ふー時間くったー。
途中oracleの調子が悪くなって、再インストに見舞われるし。
チュートリアルを進めよう〜。

472 名前:nobodyさん mailto:sage [2009/01/21(水) 17:57:23 ID:???]
>471
へぇ〜、いまはOracleでもまともに動くんだなぁ。

2年位前はDBO周りがバグだらけで使い物にならなかったけど。


473 名前:nobodyさん mailto:sage [2009/01/21(水) 20:17:56 ID:???]
投稿された記事の編集権限みたいなものもACLで管理する?
機能制限みたいなものはACLでやるんだけど
同じ機能でもオブジェクトのidによって変わる、みたいなのもACLでやるべきなのかな?

474 名前:nobodyさん mailto:sage [2009/01/22(木) 01:10:40 ID:???]
containでモデル指定すると親モデルと同じ階層に並ぶ形で出てくるけど
親モデルの奥に配置するにはどうすればいい?
Model1->find('all',array(
'contain'=>array(
'Model2'
)),

結果:
array(
[0]=>array(
[Model1]=>array(),
[Model2]=>array(),
)
)



475 名前:nobodyさん mailto:sage [2009/01/22(木) 10:29:14 ID:???]
decorte.phpのCakePHP1.2.1対応版はまだかな〜

476 名前:nobodyさん mailto:sage [2009/01/22(木) 12:48:42 ID:???]
cakeのDB接続まわりを参考にしたいのですけど
どのあたりのソースを見ればよいのでしょうか?
/app/config/database.php.default
に接続情報がありますが
これらの情報を使用して接続している部分あたりを見たいです

477 名前:nobodyさん mailto:sage [2009/01/22(木) 12:53:15 ID:???]
>>476
cake/libs/model/datasources
cake/libs/model/datasources/dbo
あたりかな


478 名前:nobodyさん mailto:sage [2009/01/22(木) 12:54:16 ID:???]
/cake/libs/model
接続に言ってる所と言うのならその下のdatasources/dboの下

479 名前:nobodyさん mailto:sage [2009/01/22(木) 15:44:55 ID:???]
CakePHP には、Railsでいうmigrationがないけど、
みんなはDBスキーマはどうやって管理してる?

前スレを見たら少し話題になってたけど、なんかgdgdに終わってた。

480 名前:nobodyさん mailto:sage [2009/01/23(金) 00:16:41 ID:???]
CakePHPの1.2.0.7962でセキュリティコンポーネントを使って
二重投稿防止しようとしてるんだけど全然防止できない
saveした後に明示的にセッションからトークン消してやればうまくいくんだけど、
皆様方そんなことをしている様子はないし

www.1x1.jp/blog/2006/12/cakephp_csrf.html

やってることはほぼこのまんま
1.2なんで$formでフォーム生成してるのが違うくらい

フレームワーク使ってるってのに全然サクサク感がねぇー

481 名前:nobodyさん mailto:sage [2009/01/23(金) 02:23:23 ID:???]
>>479
とりあえず、普通にSQLでやってる。
create_tables.sqlとか適当なファイルにcreate table文まとめてる。
で、Subversionで管理。

ほんとは、マイグレーションあると便利だけどね。
こんな感じの使い方ができるPHPスクリプトを作ればいいんだけど、
面倒だからやってない。でも、そのうちやるつもりw
php rake.php db:migrate
php rake.php db:migrate VERSION=3
php rake.php db:create
php rake.php db:drop


482 名前:481 mailto:sage [2009/01/23(金) 02:38:24 ID:???]
今調べてみたら、1.2だと非公式だけどマイグレーションあるんだね。
知らなかったわ。
今度試してみよう。

483 名前:nobodyさん mailto:sage [2009/01/23(金) 04:06:53 ID:???]
>>473
マニュアルのauthコンポーネントとACLのページを少ないから読んで見るといいかも
単純なログイン後とログインして無いとかならauthでいける

484 名前:nobodyさん [2009/01/23(金) 07:29:32 ID:YSArohX3]
cakeのfindで、一番大きなidのデータを取得したり、
一番新しいcreatedのデータを取得したりとかって、簡単にできますか?
やり方があれば、教えてください。



485 名前:484 mailto:sage [2009/01/23(金) 07:37:43 ID:???]
sortして1番めを取得すれば良かったのか…
>>484自己解決で。素人ですみません。

486 名前:nobodyさん mailto:sage [2009/01/23(金) 10:46:31 ID:???]
>>481-482
自分もこういうのを見つけていた。まあ「cakephp migration」でググっただけ
だけど。

"CakePHP migration" フォーラム - CakePHP Users in Japan
cakephp.jp/modules/newbb/viewtopic.php?topic_id=1176&forum=3

CakePHP のおいしい食べ方: DBマイグレーションか、DBスキーマシステムか
cakephp.seesaa.net/article/97882341.html

誰か使っている人いないかな。

487 名前:nobodyさん mailto:sage [2009/01/23(金) 17:31:45 ID:???]
>>484
sql の max 関数 調べてみい

488 名前:nobodyさん mailto:sage [2009/01/24(土) 16:41:32 ID:???]
AuthComponent の認証をディレクトリ単位でわけるよい方法ってないでしょうか?

/document_root/siteA/ 配下と
/document_root/siteB/ 配下でわけたい。

siteA 配下は 教師モデルを対象に認証済みのユーザーはアクセス可能とし、
siteB 配下は 生徒モデルを対象認証済みのユーザーを対象にする。
当然、教師認証済みであってもは siteB にはアクセスできず、生徒は認証済みであっても
siteA にはアクセスできない

みたいな事がやりたいんですが。。。



489 名前:nobodyさん mailto:sage [2009/01/24(土) 16:51:08 ID:???]
acl

490 名前:488 mailto:sage [2009/01/24(土) 17:14:12 ID:???]
acl は、同一ユーザーテーブルの中での権限の割り当てではないでしょうか?
がんばって読んでみたんですが、そもそもユーザー認証を行なうモデルが異なる場合は
対応できないように思いました。

今回は、教師と生徒で登録されているテーブルが違うのでログインページも教師用と生徒用があります。

教師は siteA/login.php にて。生徒は siteB/login.php にて認証します。

で、教師でログインした場合は siteA 配下のみアクセス可能。生徒でログインした場合は siteB のみ
アクセス可能としたい。

かっこ悪いすが、サブドメインきって cake そのものを2通り用意したほうが簡単かもしれないと思ってしまいました。
何かよい方法があればいいな、と。


491 名前:nobodyさん mailto:sage [2009/01/24(土) 22:19:27 ID:???]
もっと嫁

492 名前:nobodyさん mailto:sage [2009/01/24(土) 22:20:11 ID:???]
cake2個用意するとか前にも言ってるやつが居たが
プログラマーのやり方じゃない


493 名前:nobodyさん mailto:sage [2009/01/24(土) 22:44:47 ID:???]
cakeはもっとサンプルが公開されてると、こうした初心者の人も助かりそうだね。
初心者がcakeのソースなんて追え無いんだから。

494 名前:nobodyさん mailto:sage [2009/01/24(土) 22:58:31 ID:???]
つーか公式マニュアルにAROとACOの説明があるのに
>>490の理解になるのはおかしい
ちゃんと読んでない



495 名前:nobodyさん mailto:sage [2009/01/25(日) 11:58:58 ID:???]
アクションが増えるとコントローラーの行数も増えるのたが、
お前らのコントローラーの行数は最大でどの位ですか。

496 名前:nobodyさん mailto:sage [2009/01/25(日) 12:03:41 ID:???]
アクションの数自体、1コントローラ最大で10くらいしか経験無いわ

497 名前:nobodyさん mailto:sage [2009/01/25(日) 19:50:45 ID:???]
「CakePHPポケットリファレンス」の資料に載ってる
CakePHPの命名規則って、かなりでたらめ?

498 名前:nobodyさん mailto:sage [2009/01/25(日) 21:22:02 ID:???]
一つの関数(アクション)の行数を短くしろとは聞くが
一つのクラス(コントローラー)の行数を短くしろとは
あまり聞かない。

499 名前:nobodyさん mailto:sage [2009/01/25(日) 23:34:20 ID:???]
>>497
「CakePHPポケットリファレンス」の命名規約(p.406-408)で
「これ、おかしんじゃない」のワースト3を教えて。
ttp://book.cakephp.org/ja/complete/22/CakePHPの規約

500 名前:nobodyさん mailto:sage [2009/01/25(日) 23:37:01 ID:???]
俺も手元の開いてみた
なんか楽しいw

501 名前:nobodyさん mailto:sage [2009/01/26(月) 00:04:38 ID:???]
えーっと、どれも酷いので順番は付けられないけど
コントローラーの命名規則
英単語の単数形+"Controller" って書いてるのに、例が PowerUsersController
モデル名+"_id"って書いてるのに、例がpower_users_id
あとある?


502 名前:nobodyさん mailto:sage [2009/01/26(月) 01:11:31 ID:???]
ホントだ。あるねえ。
コントローラの命名規約
○クラス名 英単語の複数形+"Controller"  PowerUsersController
テーブルとカラムの命名規約
○外部キー モデル名+"_id" power_user_id、article_id
(モデル名は単数形だよね。)
修正しました。

503 名前:nobodyさん mailto:sage [2009/01/26(月) 10:35:54 ID:???]
編集フォームの初期値をセットするには
$form->create('User');
で作っていたとしたらどういう変数名・配列構造でセットすればいいの?


504 名前:nobodyさん mailto:sage [2009/01/26(月) 10:52:09 ID:???]
>>503
$this->data['User']['name'] = '麻生太郎';



505 名前:nobodyさん [2009/01/26(月) 12:24:49 ID:j8WtT0GU]
1.2系のAuthComponentにおいて任意のidでユーザ認証されてしまう、という脆弱性が。
1.2.1.8004へアップデート推奨らしいぞ。

cakephp.jp/modules/newbb/viewtopic.php?topic_id=1696&forum=1&post_id=4032#forumpost4032
www.pseudocoder.com/archives/2009/01/22/cakephp-digest-6/

506 名前:nobodyさん mailto:sage [2009/01/26(月) 13:21:32 ID:???]
AuthComponentをStableから使い始めた俺は勝ち組w

507 名前:nobodyさん mailto:sage [2009/01/26(月) 13:41:36 ID:???]
>>505
ワロタw

どこがAuthなんだよ

508 名前:nobodyさん [2009/01/26(月) 16:40:15 ID:j8WtT0GU]
これってやばいんだよね?

509 名前:nobodyさん mailto:sage [2009/01/26(月) 20:39:14 ID:???]
testsuiteって使ってる?
マニュアル見ても、よく分からん。

510 名前:nobodyさん mailto:sage [2009/01/26(月) 22:55:14 ID:???]
>>508
機能として破綻してるw

511 名前:nobodyさん mailto:sage [2009/01/26(月) 23:57:03 ID:???]
ああー
よくわからんままやったら、
フィールド消えたわ
まじか、これ

512 名前:nobodyさん mailto:sage [2009/01/27(火) 10:11:27 ID:???]
バグが取れるまでstableにしませんとか誇らしげに語ってなかったっけ?w

513 名前:nobodyさん mailto:sage [2009/01/27(火) 11:51:11 ID:???]
>511はtestsuiteの話しな

testsuiteの解説がガイドブックとかに無いし、
web上にもあんまり情報が無いので、よくわからん。
でも。simpletestをインスコしたら、bakeの際に
いろいろ聞かれなくなったのは楽だな。

514 名前:nobodyさん mailto:sage [2009/01/27(火) 12:20:04 ID:???]
1.2.1.8004 Stable ですが

設置 URL が example.jp/t/ の時、tests というコントローラにアクセスしようと、

example.jp/t/tests/ ってやると、example.jp/t/ests/ に勝手になってしまって

Error: EstsController could not be found.

となります。 t に限らず webrootが1文字で とコントローラの最初の一文字が同じだと
上記のようになると思いますが、何か注意するところはありますか?



515 名前:nobodyさん mailto:sage [2009/01/27(火) 12:32:20 ID:???]
>>514
cakephp.jp/modules/newbb/viewtopic.php?topic_id=1706&forum=6&post_id=4025#forumpost4025
これと同じかな

516 名前:nobodyさん [2009/01/28(水) 11:36:58 ID:AHb2WVE2]
既存テーブル名が日本語で、cakeが認識しません。
どうすればいいのでしょうか?
php直ですと日本語テーブル名でクエリは通ります。


517 名前:nobodyさん mailto:sage [2009/01/28(水) 12:33:02 ID:???]
cake周りの文字コードをutf-8にしたら
とりあえず、認識した。

518 名前:nobodyさん mailto:sage [2009/01/28(水) 18:06:35 ID:???]
テーブル名が日本語ってトラブルの元じゃない? って、以前言われた。

testって、データを入れて出して一致してるか確認してるんだって事が
ようやく少し分かった。

519 名前:nobodyさん mailto:sage [2009/01/28(水) 18:29:34 ID:???]
テーブルとかカラムが全角文字だと激怒する奴いるけど
別に日本で使うシステムなら問題ないんだけどな
Oracle/Access+VBのシステムなんかよくあるし
PHPだって変数名ですら全角文字でもOKなんだし

520 名前:nobodyさん mailto:sage [2009/01/28(水) 19:00:41 ID:???]
>>519
全角って、そんなに変じゃないの?
bakeする時に日本語で全部作ってくれると楽そうだなーって思ってた。
多言語化を考える必要なんて全くない物を作るのにi18nすら面倒で、
ソースに日本語のエラーメッセージを書いてやろうと思ってた。

521 名前:nobodyさん mailto:sage [2009/01/28(水) 19:02:34 ID:???]
あ。でも、そうすると複数形ってどうすんだ?

522 名前:nobodyさん mailto:sage [2009/01/28(水) 19:04:55 ID:???]
DB関連の開発系ツールも含めて全て対応出来てるんならいいんだろうけど
海外製のライブラリは対応出来てないものが多いし
結局、全角ゴリ押しは開発者側に負担を強いることが多いよ
プロジェクト内で使う環境を全部調査して、誰にも迷惑かけないと判明したら使えばいいと思うけど

523 名前:nobodyさん mailto:sage [2009/01/28(水) 19:05:44 ID:???]
>>521
個別テーブル名定義で対応するしかないと思う
やったことないし試そうとも思わないから詳しくは知らない

524 名前:nobodyさん mailto:sage [2009/01/28(水) 20:22:20 ID:???]
早速、日本語名utf8のテーブルやフィールドを作って、
cake bake allしてみた。
コンソールは微妙に文字化けしてたけど、難なく焼けた。
でも、アクセスしたらエラーが出た。ファイルを見たら、
ファイルがshift jisで認識されて、日本語部分は全部文字化け。

こんなことで苦労したくないので、これ以上は試すの止める。



525 名前:nobodyさん mailto:sage [2009/01/29(木) 05:37:51 ID:???]
CakePHPは使ったことがありませんが、非常に興味があり質問させて
いただきます。

今まで自作の簡易フレームワークで業務アプリを作ってきました。
画面数は数十あります。
表示はSmartyを使っています。

これを少しづつCakePHPに置き換えたいと考えていますが、
フレームワークを変更するとかなり大掛かりな作業になりそう
ですし、部分的に置き換えていくのが実際できるのかわかりません。

CakePHPは、上述のように既存のWebアプリを部分的に置き換えていける
ものなのでしょうか?
それとも、新規Webアプリから採用するべきものなのでしょうか?




526 名前:nobodyさん mailto:sage [2009/01/29(木) 11:43:51 ID:???]
>>525
新規案件だけにしたほうが苦労が少なくていいと思う

527 名前:nobodyさん mailto:sage [2009/01/29(木) 11:51:59 ID:???]
>>525 思いついたところから書くと

最低クリアされるべき条件
・DBの構造(idとか)
・URL(/controller/action/param.. の形式)
がクリアされないといけない

そのうえで、Modelごと(≒tableごと)移行していくというのであれば、不可能ではないと思うが。

現実的には、DBを共通化して、Cakeによるサイトを作っていき、同時に稼働させてテストし、一気にリプレイスってことになりそうな気がするけど、どうなんだろうね。

ただ、Cakeに慣れるまである程度時間がかかるから、いずれにせよ新規アプリから始めないと、苦労すると思うよ。

528 名前:525 mailto:sage [2009/01/30(金) 06:58:44 ID:???]
>>526, 527
レスありがとうございました。
やはり新規案件からCakePHPをはじめたほうが無難ですね。
スキルを醸成してから、既存システムの変更を検討します。


529 名前:nobodyさん mailto:sage [2009/01/30(金) 11:51:03 ID:???]
自作クラスのインスタンスを得るにはどうすればいいの?

データを引数に持たせてインスタンス同士をいろいろ比較してくれるクラスを
昔作ったんだけどどう持ち込めばいいのかわからない

530 名前:nobodyさん mailto:sage [2009/01/30(金) 17:53:58 ID:???]
ポケットリファレンスを見てるんだが。
1.2になってModel::findが大幅に機能強化されたのに、
記述が少なすぎる。もしくは、Model::generateList()
のページに代わりの方法が書いてあればいいが、
Model::find()だけでは意味不明だろう。

531 名前:nobodyさん mailto:sage [2009/01/30(金) 18:27:52 ID:???]
>>530
おとなしく改訂版を待ってろ

532 名前:nobodyさん mailto:sage [2009/01/30(金) 18:55:05 ID:???]
改訂版って出るの?

533 名前:nobodyさん mailto:sage [2009/01/30(金) 19:21:00 ID:???]
コントローラから2つのモデルとデータをやり取りする場合、
アソシエーションを使う方がいいのか、
Controller::usesで直接指定する方がいいのか。

534 名前:nobodyさん mailto:sage [2009/01/30(金) 19:29:43 ID:???]
アソシエーション使うと結果変わる事ない?
たぶん親モデルと関連してるレコードしか該当しないよ



535 名前:nobodyさん mailto:sage [2009/01/30(金) 23:31:39 ID:???]
コントローラからコントローラへデータを渡すのって、どうするの?

536 名前:nobodyさん [2009/01/31(土) 01:44:15 ID:ZNZRtHpp]
flash

537 名前:nobodyさん mailto:sage [2009/01/31(土) 04:27:13 ID:???]
>>536
なるほど。
urlでパラメータを渡すなら、redirectでも良さそう。
でも、urlだと大きなデータは渡せないよね。
データが丸見えになるし。

あと、同じウィンドウの中でのみ渡すってなると、
どんな方法が良さそう?

538 名前:nobodyさん mailto:sage [2009/01/31(土) 04:30:59 ID:???]
>>537
まあなんだ。
ウェブアプリはデスクトップアプリと
考え方が違うが・・・
まあ、がんばれや。

539 名前:nobodyさん mailto:sage [2009/01/31(土) 05:48:56 ID:???]
Session->renew()で新しいsession_idを割り振れば
いけるかな?と思ったが、甘かった。同じブラウザでは
renewする前のが消える。
別のブラウザなら大丈夫だった。(当たり前か)


540 名前:nobodyさん mailto:sage [2009/01/31(土) 08:38:22 ID:???]
解決。セッションの使い方を間違ってる。
ユニークキーの発行が正しい。

541 名前:nobodyさん mailto:sage [2009/01/31(土) 09:18:36 ID:???]
Cakeユーザーの低レベルさが泣けてくる

542 名前:nobodyさん mailto:sage [2009/01/31(土) 09:28:15 ID:???]
>>541
今CakePHPが注目を集めている為、素人が「PHPフレームワークなら俺にも何か簡単に
Webアプリが作れるかな。」という気になっているじゃない?
見方を変えるとCakePHPの功績は大きいかも?

543 名前:nobodyさん mailto:sage [2009/01/31(土) 09:38:59 ID:???]
にしてもプログラマーと呼べないレベルの質問が多すぎる


544 名前:nobodyさん mailto:sage [2009/01/31(土) 09:47:48 ID:???]
そろそろsymfonyの時代か・・・?



545 名前:nobodyさん mailto:sage [2009/01/31(土) 10:44:44 ID:???]
それでも作れちゃうなら凄いこと

546 名前:nobodyさん mailto:sage [2009/01/31(土) 10:46:19 ID:???]
そんなレベルの人が正しくフレームワークを使いこなせてるとは思えない
保守不可能なシステムを作ってそう

547 名前:nobodyさん mailto:sage [2009/01/31(土) 11:16:37 ID:???]
Web屋と呼べないレベルではあるが
exe屋だったら最初そんなもんだろ。
まあ、フレームワーク知識自慢しかできないようじゃ、
お前らすぐに抜かれるよ。

548 名前:nobodyさん mailto:sage [2009/01/31(土) 13:50:46 ID:???]
>>529
自作クラスなんてコンポーネントにしちゃえばいいよ。
で、コントローラーで
$this->Myclass->eat('hoge');

で。

>>535
作り方としてデータを渡したいような内容のものがあるならモデルに書いた方がいい。
で、コントローラーからそのモデルのアクションを読み出してデータを取得。

549 名前:nobodyさん [2009/01/31(土) 16:13:14 ID:x6QrlarV]
authcompornentでユーザ登録した後、自動的にログイン状態に遷移する処理について
なにか方法があれば教えていただけませんでしょうか?

550 名前:nobodyさん mailto:sage [2009/01/31(土) 16:23:21 ID:???]
マニュアルを読め

551 名前:nobodyさん mailto:sage [2009/01/31(土) 17:40:26 ID:???]
データが全然こなくて小一時間悩んでたけどconditionsて書く所がconditonsになってた〜 時間返せー

552 名前:nobodyさん mailto:sage [2009/01/31(土) 17:50:06 ID:???]
色々読んでみたが、結局趣味でやるぶんにはイイFWってことか

553 名前:nobodyさん mailto:sage [2009/01/31(土) 18:44:40 ID:???]
>>551
あるあるwwww
JavaScriptでもundefinedとunidentifiedをよく間違えるんだよな

554 名前:nobodyさん mailto:sage [2009/01/31(土) 18:55:23 ID:???]
配列仕様だからそういうミスしても分からないんだよね
なにかあるたびに配列にミスが無いかチェックしてるわ



555 名前:nobodyさん mailto:sage [2009/01/31(土) 19:10:10 ID:???]
よく使うやつはテキストエディタの強調表示設定に入れておくのが吉

556 名前:nobodyさん mailto:sage [2009/01/31(土) 19:38:57 ID:???]
symfonyを採用したオープンソースのSNS OpenPNE3.0が1/27にリリースされたそうな。
ttp://www.openpne.jp/archives/1117/
と言う事は、OpenPNE3.0はPHP4のサーバにはインストール出来ないと言うことか?
多くのアプリがPHP4で開発されたもので、PHP5での稼働が保証されていないので、
サーバのPHPを5に出来ないんだよな。

557 名前:nobodyさん mailto:sage [2009/01/31(土) 21:24:40 ID:???]
>>548
モデルAとモデルBで、一応形としては
A hasMany B
B blongTo A
なんだけど、普段必要になるのは、Bのうちnot deleteのフラグが立ってる
1つのデータだけなのよ。そして、まれに(not delete関係なく)全ての
データが必要になる。これをどう扱ったら良い?

A hasOne B
にしても、BにA_idというフィールドが必要なだけに、こちらが望む
通りに紐付けするには条件(not delete=true)が足りない気がするし、
SQLの実行に時間や負担がかからないか心配だし、汎用性がどうか?

Bのデータをidで直接呼び出した方が早いような気がしたので・・・
Aに、not deleteに当るBのデータのidを入れるフィールドを作っていて、
AのコントローラでBのモデルも扱ってread(Bのid)ってするつもりだった。
だけど、このやり方って変?

558 名前:nobodyさん mailto:sage [2009/01/31(土) 21:53:45 ID:???]
>>557
ゆとりなの?死ぬの?

こんな風に A のモデル書いて
class A extends AppModel
{
var $hasMany = array('B' => array(
'className' => 'B',
'conditions' => array('B.delete' = 'not delete'),
),);

function hogehoge()
{
unset($this->hasMany['B']['conditions']['B.delete']);
return $this->find('all');
}
}

で、普段はコントローラから $this->A->find() でデータ取得して、
B.delete を無視する時は $this->A->hogehoge() 使うようにするだろう。jk


559 名前:nobodyさん mailto:sage [2009/01/31(土) 23:42:40 ID:???]
コントローラーから別のコントローラーに値を渡す方法と言われて、セッションとかそういう話じゃなかったことしかないな

560 名前:nobodyさん mailto:sage [2009/02/01(日) 01:12:20 ID:???]
質問です。

$data = array(
array(
'User' => array('id' => 1, 'name' => 'suzuki'),
'Tag' => array(
array('id' => 1, 'title' => 'hoge'),
array('id' => 2, 'name' => 'fuga')
),
),
array(
'User' => array('id' => 2, 'name' => 'sato'),
'Tag' => array(
array('id' => 1, 'name' => 'piyo'),
array('id' => 3, 'name' => 'moge')
)
)
);
$result = Set::extract('/Tag[id=1]/..', $data);
debug($result);

このとき$resultには、結果的に$dataと同じデータが入ると思うんですが、
「Notice (8): Undefined offset: 1 [CORE/cake/libs/set.php, line 415]」
というエラーが出て、2つめのデータが表示されません。何が原因なのでしょうか?

561 名前:560 mailto:sage [2009/02/01(日) 01:26:07 ID:???]
すみません、追記です。
PHPのバージョンは5.2.8、CakePHPのバージョンは1.2.1.8004です。

あと「array('id' => 1, 'name' => 'piyo'),」は、
「array('id' => 1, 'title' => 'hoge'),」とした方が自然ですね。


よろしくお願いします。

562 名前:nobodyさん mailto:sage [2009/02/01(日) 22:33:35 ID:???]
>>560
よくわからんけど。
Tagの添字のID=1が二つあるからじゃね?
それ以外の条件での検索については、エラーは出ないし。


563 名前:nobodyさん mailto:sage [2009/02/01(日) 22:46:30 ID:???]
ちょっと複雑?なアソシエーションについて教えて。
基本は A hasMany B , B belongTo A なんだけど、
AとBは hasAndBelongToMany でもある。
(Aが担当教員で、Bが生徒と思えば。
Aの中に担任が一人居るような感じ。)
belongTo のAと、hasAndBelongToManyのAsを
どうやって取得し分けたらいい?


564 名前:nobodyさん mailto:sage [2009/02/02(月) 01:23:57 ID:???]
>>563
アソシエーションのbindとunbindを使い分ければいいんじゃない?



565 名前:nobodyさん [2009/02/02(月) 05:46:05 ID:lBmCzdKa]
1.2でpaginatorを1画面に複数使う方法が書いてあった
blog、どこにあったか知ってるひといたら教えてプリーズ

あとで見ようとしててどっかにいってしまいました

566 名前:563 mailto:sage [2009/02/02(月) 15:51:42 ID:???]
>>564
一方を取得したくない時には、それでいけそうです。ありがとう。

だけど逆に、両方取得したい時に困りました。
当たり前かもしれませんが、両方が同じ変数に混ざってしまいます。

[B] => Array
(
[id] => 1
[name] => hoge
[0] => Array
(
[id] => 1
[name] => hoge
[AsB] => Array
(
[id] => 4
[A_id] => 1
[B_id] => 1
)
)
)
これ、どうやって分離する?
もしくは、別々の変数でとり出す方法は?
それとも、そもそもデータベースの設計がおかしい?

567 名前:nobodyさん mailto:sage [2009/02/02(月) 16:28:39 ID:???]
>>566
良くのみこめてないけど、tableに問題がありそうなきがする
teachers , students があるのかな?
classes があればすべて解決するような気がするけど違うのかい?

568 名前:563 mailto:sage [2009/02/02(月) 19:05:21 ID:???]
Authも兼ねるつもりなので、 A hasMany B のAはusersなのです。
だからgroupsも作ってあるけど、classesやgroupsのいずれでも
B blongsTo〜の関係にならないのです。


569 名前:nobodyさん mailto:sage [2009/02/02(月) 19:06:34 ID:???]
www.google.co.jp/trends?q=cakephp%2Cruby+on+rails&ctab=0&geo=all&geor=all&date=all&sort=0

逆転しそう

570 名前:nobodyさん mailto:sage [2009/02/02(月) 19:55:59 ID:???]
>>568
いやいやそういうこっちゃないでしょ

もっと具体的に書いてみたらどうよ。
「A hasMany B , B belongTo A なんだけど、 AとBは hasAndBelongToMany でもある」って言われてもねえ
関係するModelと、そこで使われているアソシエーションの内容を、具体的にたのむ

571 名前:nobodyさん mailto:sage [2009/02/02(月) 20:48:11 ID:???]
>>569
これってGoogleでの検索件数のトレンドグラフだよねえ。
CakePHPは色々と問題が多くて、その解決法を探す為にみんなせってと「CakePHP」
キーワードで検索をしている。だから最近検索件数がウナギ登りなんだ。
と言う見方もあるのかなあ?世間の注目を集める為のCakePHPの戦略では?

572 名前:nobodyさん mailto:sage [2009/02/02(月) 21:19:08 ID:???]
>>566
必要なデータを得られるfindをして、自前で工夫すればいいんじゃないかな

573 名前:563 mailto:sage [2009/02/02(月) 21:22:19 ID:???]
usersテーブル
id
name

personsテーブル
id
name
user_id //これが主たるuser

persons_usersテーブル
id
person_id
user_id //その他のuser

Userモデル
var $hasMany = array('Person' => array('className' => 'Person',
'foreignKey' => 'user_id'));

Personモデル
var $belongsTo = array('User' => array('className' => 'User',
'foreignKey' => 'user_id'));
var $hasAndBelongsToMany = array('User' => array('className' => 'User',
'joinTable' => 'persons_users',
'foreignKey' => 'person_id',
'associationForeignKey' => 'user_id',
'unique' => true));


574 名前:563 mailto:sage [2009/02/02(月) 21:23:10 ID:???]
Personsコントローラ
class PersonsController extends AppController {
function view($id = null) {
$this->set('person', $this->Person->read(null, $id));
debug($this->Person->read(null, $id));
}
}

すると、$person['User']に、>566みたいに、belognsToとhasAndBelongsToManyの
両方のデータが入ってしまう。
['User'][id]
['User'][name]とかは、blongsToのデータ
['User'][0][id]
['User'][0][name]とかはhasAndBelongsToManyのデータだと思う。




575 名前:nobodyさん mailto:sage [2009/02/02(月) 22:34:43 ID:???]

var $hasMany = array('Profile1' =>
array('className' => 'Profile',
'foreignKey' => 'user_id',
),
'Profile2' =>
array('className' => 'Profile',
'foreignKey' => 'user_id',
)
);

576 名前:563 mailto:sage [2009/02/02(月) 22:56:48 ID:???]
>>575
それだ!!うまくいきました!多謝多謝

577 名前:nobodyさん mailto:sage [2009/02/03(火) 09:54:32 ID:???]
モデル間のデータのやり取りや、
一つのモデルで複数のフィールドの
データを操作するのって、どうやるの?
というか、そういうのは奨められない?

あるフィールドにデータが書き込まれたら、
同時に別のフィールドにもデータを書き込みたい。
(DBの設計がそもそも冗長との批判は分かる。)

578 名前:nobodyさん mailto:sage [2009/02/03(火) 10:15:42 ID:???]
>>577
afterSave , afterDelete

579 名前:nobodyさん mailto:sage [2009/02/04(水) 16:42:15 ID:???]
セレクトメニューを作るために、find('list')で配列を取得して、
この配列の先頭に、例えば、
$sel[0]='ここから選んで';
みたいなのを追加するのって、どうする?

array_unshiftだと、IDに当る数字が再割り付けされてしまう。


580 名前:nobodyさん mailto:sage [2009/02/04(水) 17:30:08 ID:???]
formヘルパーのオプション指定にそういう機能が無いかと
配列に直にデータを入れてバリデーションと合わせて簡単にやれないかを検討する

581 名前:nobodyさん mailto:sage [2009/02/04(水) 18:18:31 ID:???]
ポケットリファレンスだと、そもそも
$form->input('sel_id')
の説明が無いんだよなー。
$form->selectにもなさげ。

配列に直にデータ入れて、ksortでできたからいいか。


582 名前:nobodyさん mailto:sage [2009/02/04(水) 18:39:48 ID:???]
>>581 え?
$form->select()だと第5引数showEmptyに文字列指定
調べてないけどinputもいけるはず

583 名前:nobodyさん mailto:sage [2009/02/04(水) 19:26:25 ID:???]
ほんとだ。出来た。
そうだよなー。素人の私でも、出来ないと不便だって思うもんなー。

584 名前:nobodyさん mailto:sage [2009/02/04(水) 23:27:52 ID:???]
ポケットなんとかがどんなもんだか知らないけど、まずマニュアル見ましょうよ。
せっかくCakeは日本語ドキュメントが充実してるんだから。



585 名前:nobodyさん mailto:sage [2009/02/05(木) 00:17:23 ID:???]
うむ・・・おっしゃる通り。結局、Webの日本語マニュアルが一番参考になってる。
これだけでもCakePHPを選んで良かったと思う。
だけど、紙の本で探す方が早い事も多いし、狭い画面でやってるのでwebマニュアル
を開いてる場所が無いのです。
ポケリファの1.2.1対応した改訂版が早く出て欲しい。できれば、Authとか1.2の
新機能をきっちり説明して欲しい。

586 名前:nobodyさん mailto:sage [2009/02/05(木) 00:26:39 ID:???]
1.2stable出たし、各社対応版発売を狙ってるでしょ
逆引き的なのは欲しいなぁ〜

587 名前:582 mailto:sage [2009/02/05(木) 09:29:26 ID:???]
>>584
まずマニュアル見ようというのは同意だけど、マニュアルの記述がまだまだ不完全なのは事実

今回の件であれば
select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty)
空の選択オプションを表示したくない場合、$showEmpty を false にします。
と、ある
boolean の引数にテキストを指定するなんて、api.cakephp.org/ でソースを見るしかない
(今回はポケットリファレンス見たというから、つっこんだまで)

588 名前:nobodyさん mailto:sage [2009/02/05(木) 09:35:20 ID:???]
>>581
付け加えると、詰まったら api.cakephp.org/class/form-helper#method-FormHelperselect を見るのが、一番手っ取り早い
こっちは、マニュアルよりは更新早いし、最終的にはソースを追えるし
まあ、がんばってくれ


589 名前:nobodyさん mailto:sage [2009/02/05(木) 17:58:21 ID:???]
findAll で フィールド price か item のどちらかにマッチするというクエリを書く場合って
どうすればいいの?

590 名前:nobodyさん mailto:sage [2009/02/05(木) 18:28:27 ID:???]
>>589

1.2だったら
$this->MODELNAME->find('all',
 array(
  'conditions'=>array(
    'MODELNAME.price' => '2000',
    'MODELNAME.item' => 'ITEM')
 )
);

こんな感じ

591 名前:nobodyさん mailto:sage [2009/02/05(木) 18:29:43 ID:???]
>>590
ありがとう!
その前にMYSQLが日本語ひっかからないという。。。
なんでだろ。
参考になりました。ありがとうございます。

592 名前:589 mailto:sage [2009/02/05(木) 18:34:16 ID:???]
cakephp とは関係ないと思いますけど
$option = array('Faqlist.name LIKE BINARY' => $str);

ってBINARY ってのをつけると 日本語もうまくひっかかるようになります。
今まではちゃんとひっかかってたのに。MYSQLの仕様がかわったのかなー

593 名前:nobodyさん mailto:sage [2009/02/05(木) 18:52:42 ID:???]
>>590
"or"とか入れなくても良いんでしたっけ?

594 名前:nobodyさん mailto:sage [2009/02/05(木) 18:55:11 ID:???]
db側の文字コードがLatin1とかだとBinaryで処理するしかないってことだと思うけどね。



595 名前:nobodyさん mailto:sage [2009/02/06(金) 03:00:32 ID:???]
Model::save()の際に、複製を残したいと思って、
idが空になれば新規保存されるのかな?と思って、
モデルに
function beforeSave() {
unset ($this->data[$this->name]['id']);
return true;
}
と書いてみたが、UPDATEされてしまった。

かといって、
function beforeSave() {
$d = $this->data;
unset ($d[$this->name]['id']);
$this->create();
$this->set($d);
return true;
}
ってしたら、createdの日付が0になってしまった。

何か良い方法無い?


596 名前:nobodyさん [2009/02/06(金) 08:05:18 ID:OIEK7Rhk]
複製を残したいなら二回saveする必要があるんじゃねーか?

597 名前:nobodyさん mailto:sage [2009/02/06(金) 09:38:20 ID:???]
>>595
どのように複製したいのだろうか?
updateだろうがinsertだろうが、同じデータをinsertするということなら
afterSaveで、create後saveすれば良いと思われ
別のDBに保存したいというのならuseDbConfigを変更してsaveかな?

いずれにせよafterSaveじゃないと、validationErrorのときにもsaveされちゃうんじゃないかな

598 名前:nobodyさん mailto:sage [2009/02/06(金) 10:28:16 ID:???]
>>596,597
複製って表現が違ったかもしれん。すまん
「バックアップを残す」って感じ。
既存のデータの編集の際、既存のデータは
そのまま(削除のフラグを立てる)で、
新しいidで保存したい。

すると、afterSaveでは上書きされた後だから
ダメでしょ? そこで、beforeSaveでidを
空にすれば新しいidで保存されるかなと思ったが、
なぜか上書きされてしまった(前者)。
コピーしたデータで書き込んだら、createの
情報が抜けてしまった(後者)。という次第であります。

599 名前:nobodyさん mailto:sage [2009/02/06(金) 10:42:52 ID:???]
>>599
履歴を残すってことね。理解した。
でも、それでもafterSaveだろう
新規のデータをinsertして、afterSaveで既存のデータをupdateする感じじゃないかな
book.cakephp.org/ja/view/76/
beforeSaveはあくまで保存するデータをいじったりするときに使うものだと思うよ
>>597のvalidationErrorのときにもsaveされるは間違いのようだ

600 名前:nobodyさん mailto:sage [2009/02/06(金) 10:53:08 ID:???]
>>599
>新規のデータをinsertして、afterSaveで既存のデータをupdateする
 ↑
この処理はコントローラに書くことになるよね?
どこかで、「ビジネスロジックはモデルに」なんて書いてあったので、
モデルに書く方法を考えてた。(コントローラからは普通にsaveしてる
ように見えるけど、モデルの方でバックアップを残してる、って感じ)
もしくは、モデルに上記の処理をするメソッドを作る方法もある?
Model::save()を上書きしたら・・・さすがにややこしいことになるよな。

601 名前:nobodyさん mailto:sage [2009/02/06(金) 11:04:42 ID:???]
>>600
afterSaveと言ってるくらいだから、Modelでしょーが
おまいさんのいうように、自動的に履歴が残るぞ。
まずは、マニュアル読んでコールバックメソッドを理解するべし

602 名前:nobodyさん mailto:sage [2009/02/06(金) 11:08:14 ID:???]
あ。そうか。ちょっと勉強して、試してみる。

603 名前:nobodyさん mailto:sage [2009/02/06(金) 11:16:38 ID:???]
>>602 Have a nice cooking !

604 名前:nobodyさん mailto:sage [2009/02/06(金) 12:54:05 ID:???]
>>601
「新規のデータをinsertして」もModel??
その後、afterSaveの中でgetIDできるのは
新しい方のデータで、既存のデータのidは
取得できないのでは?




605 名前:nobodyさん [2009/02/06(金) 12:58:50 ID:Fuxx6e9Y]
バリデーションが効かない。助けて下さい。

モデルに追加するだけで動作するよね?

var $validate = array(
'xxx' => array(
'rule' => VALID_NOT_EMPTY,
'message' => '必須項目です。'
)

606 名前:nobodyさん mailto:sage [2009/02/06(金) 13:12:45 ID:???]
>>604
それは、Controller
既存のidについては、自分で工夫してみてくれ。getIDする必要があるとは思えんから

607 名前:nobodyさん mailto:sage [2009/02/06(金) 13:51:55 ID:???]
>>606
ありがとう。わかりました。

いくつかのモデルで同様の処理が有るので、
メソッド作って、AppModelに書いてみました。

608 名前:nobodyさん mailto:sage [2009/02/06(金) 14:27:27 ID:???]
CakePHPってXSSとかSQLINJECTIONに対応してますか?
自分で処理するしかないですあk?

609 名前:nobodyさん mailto:sage [2009/02/06(金) 14:49:58 ID:???]
基本的に処理はされるが、知らずに穴を作ることはできるので、
自分で意識する必要はある。当然だが。

610 名前:nobodyさん mailto:sage [2009/02/06(金) 16:08:24 ID:???]
>>608
XSSやSQLインジェクションの仕組みと対策方法を知っていれば、
おのずと分かる話だと思うが?

611 名前:nobodyさん mailto:sage [2009/02/06(金) 16:17:31 ID:???]
Cakeのセキュリティ関係はあまり信用出来ないけど


612 名前:nobodyさん mailto:sage [2009/02/06(金) 16:32:25 ID:???]
さすがにXSSについては、Helper使わない限りは、自分でh()に通すしかないわな

613 名前:nobodyさん mailto:sage [2009/02/06(金) 16:44:06 ID:???]
Ajaxしてると見落とすこともあるかも。

614 名前:nobodyさん [2009/02/06(金) 22:15:58 ID:OIEK7Rhk]
これってDBにロックかけることってできないの?
BEGINでトランザクション開始
SELECT FOR UPDATEで更新用データ取得と同時にロック
UPDATEでデータ更新
COMMITでトランザクション終了

みたいな感じにしたいんだけど、SELECT FOR UPDATEって
どうやって設定してやったらいいんだ?



615 名前:nobodyさん [2009/02/07(土) 09:27:29 ID:u7AiZVmn]
webrootの.phpファイルからcakeのコントローラを読んで
表示したいのですが、
includeでコントローラが読めませんでした。

viewにすれば解決するのはわかるのですが、
外部からcakeの結果を受けとることって無理なんですかね?

616 名前:nobodyさん mailto:sage [2009/02/07(土) 10:22:18 ID:???]
>>615
(今考えている解決方法がどうやったらできるかじゃなくて)
具体的に今抱えている問題を書き込んだほうが、解決につながりやすいと思うよ

webrootにphpファイルを置くというのは、方向性が間違っている可能性が高い

617 名前:nobodyさん mailto:sage [2009/02/07(土) 18:26:40 ID:???]
複数のモデルデータを保存したい時ってどうやってる?
条件としてはどちらもバリデーション通ったら保存。

バリデーションチェックとその表示との両立が上手くできない。

618 名前:nobodyさん mailto:sage [2009/02/07(土) 18:37:09 ID:???]
>>617
'validate' => 'first' でsaveAll()

book.cakephp.org/ja/view/75/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B


619 名前:nobodyさん mailto:sage [2009/02/07(土) 19:28:59 ID:???]
>>618
明確な答えをありがとう。
フォームのバリデーションエラー表示も少してこずりましたが試して見ます。
saveAllをネット上の情報で試したんですが、エラー表示がきちんと出なかったんですよね。
フォームヘルパーの指定方法の問題じゃないかと思っていましたが。

taskモデルと、アソシエーションしたTimelineモデル(hasMany)のフォームはこんな感じで書いてます。
echo $form->input('task');
echo $form->input('Timeline.progress');

ちょっと前見たときはsaveAllの説明なかった気がするのは気のせいかな・・。
履歴を見ると気のせいじゃない気もする、今月に入って誰か訳してくれたんだねありがとう訳者さん。

620 名前:nobodyさん [2009/02/07(土) 23:38:50 ID:K4fXwaLQ]
「マニュアル/開発例/ACLを制御するシンプルなアプリケーション」で
User自身が書いたPostのみ編集できて、他人のPostは編集できないようにしたいのですが、
どうしたらいいのかわかりません。><

isAuthorized()とかbeforeFilter()になんかちまちま書くしかないんでしょうか?

例えば、ACL使ってないけど、

function isAuthorized() {
if ($this->Auth->user('username') == 'admin') {
return true;
}

if (!empty($this->params['pass'][0])){ // ユーザー名
if ($this->Auth->user('username') != $this->params['pass'][0]) {
return false;
}
}

return true;
}

こんな感じとか?


621 名前:nobodyさん mailto:sage [2009/02/07(土) 23:48:49 ID:???]
book.cakephp.org/ja/view/171/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1%E3%83%AA%E3%82%B9%E3%83%88

622 名前:nobodyさん [2009/02/08(日) 00:16:52 ID:XBcxfvCP]
TRPGオタしか喜ばなそうな上記説明を熟読すれば、
「マニュアル/開発例/ACL〜」のサンプルで
id:1のUserのみがuser_id:1のPostを編集できるようにできるんですか?

623 名前:nobodyさん mailto:sage [2009/02/08(日) 01:12:57 ID:???]
>>622
「TRPGオタしか喜ばなそうな上記説明を熟読すれば、」ってことは、
ちゃんと読んでないのか。
マニュアルくらい読めよw

それとも読めないくらい馬鹿なの?ww
もしそうだったらごめんねwww


624 名前:nobodyさん mailto:sage [2009/02/08(日) 02:18:10 ID:???]
>>622
マニュアルの更なる理解のために「指輪物語」を読破するんだw



625 名前:nobodyさん mailto:sage [2009/02/08(日) 02:30:48 ID:???]
formヘルパーで、複数のテキスト入力boxを
1行に並べるのって、どうするの?


626 名前:nobodyさん mailto:sage [2009/02/08(日) 04:45:10 ID:???]
>>625
自分でフォームを書く

627 名前:nobodyさん mailto:sage [2009/02/08(日) 04:56:26 ID:???]
>>626
えっ、マジ?

628 名前:nobodyさん [2009/02/08(日) 11:29:47 ID:XBcxfvCP]
いや、読んだ上で言ってるんだが。。。

これだとテーブル単位では大丈夫だけど、レコード単位での権限の設定が
できないんじゃないかと思うんだが、違うのか?

なんか、ここはレベル低いなぁ。

629 名前:nobodyさん mailto:sage [2009/02/08(日) 11:49:57 ID:???]
その処理は、自分で書くんだよ。
自分が投稿したやつだけ編集できるって。
当たり前だろ。

管理者は全員のものを編集できるかもしれないし、
別に編集者という人を作るかもしれない。

誰が何を編集できるかを決めるのはお前。
よってお前がそういうコードを書く。OK?

レベルが低いのはお前。

630 名前:nobodyさん mailto:sage [2009/02/08(日) 12:03:59 ID:???]
>>625
tableタグ使うと$form->text()を1行に並べること出来るよ。
後は、app/webroot/css/cake.generic.cssの内容を自分の好みに編集するだな。
(でも、なんでCakePHP1.2のdefaultのcssはこんなに変態なのだろ?)

631 名前:nobodyさん mailto:sage [2009/02/08(日) 12:10:49 ID:???]
'div' => 'false' とかで横に並べられた気もするが・・・

> (でも、なんでCakePHP1.2のdefaultのcssはこんなに変態なのだろ?)
同意。デフォルトのフォントの大きさとかマージンとか
各ブラウザの間での違いを吸収する程度にしておけばいいのに。


632 名前:nobodyさん [2009/02/08(日) 12:17:33 ID:XBcxfvCP]
>>629

> その処理は、自分で書くんだよ。

いや、書かなきゃならないのは、最初からわかってるよ。
でも、どこに書けばいいのかがわからない。

isAuthorized()やbeforeFilter()に書くのか?

633 名前:nobodyさん mailto:sage [2009/02/08(日) 12:21:23 ID:???]
チケットを投げるんだ。

Summary: "cake.generic.css" looks like hentai
Type: RFC

634 名前:nobodyさん mailto:sage [2009/02/08(日) 12:23:13 ID:???]
>>632
ご飯から食べるか味噌汁から食べるか。
好きにしろw



635 名前:nobodyさん mailto:sage [2009/02/08(日) 13:06:23 ID:???]
>>631
<?php
echo $form->text('hoge0', array('div' => 'false'));
echo $form->text('hoge1', array('div' => 'false'));
echo $form->text('hoge2', array('div' => 'false'));
?>
これでは縦に3つ並んでしまったが、こんな書き方ではないのかな??

636 名前:nobodyさん mailto:sage [2009/02/08(日) 13:29:45 ID:???]
>>628
レベルが低いのはお前の頭

637 名前:622 [2009/02/08(日) 13:32:48 ID:ByGZ6/FB]
>>632
教えてやるから土下座して「自分の頭の程度が悪うございました」とPCの前で言え

単にACOにmodel,foreign_keyを目的のレコードのものに設定して登録して、
AROとACOの関係を定義するだけ
ACO登録位置は種類考えて適宜選べ

関係の定義とチェック関数については>>622に書かれてる

638 名前:621 [2009/02/08(日) 13:33:26 ID:ByGZ6/FB]
622じゃなくて621だった

639 名前:nobodyさん mailto:sage [2009/02/08(日) 14:40:18 ID:???]
CakePHPで掲示板作れます?

640 名前:nobodyさん mailto:sage [2009/02/08(日) 14:43:20 ID:???]
>>639
お前は何を言っているんだ?

641 名前:nobodyさん mailto:sage [2009/02/08(日) 14:45:17 ID:???]
>>640
質問しているのです。

642 名前:nobodyさん mailto:sage [2009/02/08(日) 15:03:43 ID:???]
>>641
はいはい、ソーデスネ。
次のネタが思いつかないので、マジレスする。
作れます。
以上。



643 名前:nobodyさん mailto:sage [2009/02/08(日) 15:04:30 ID:???]
>>639
ベタのPHPで作るより、短時間で、高機能(Ajaxなど)な掲示板が作れますよ。
がんばってください。

644 名前:nobodyさん mailto:sage [2009/02/08(日) 16:07:39 ID:???]
>>642-643
がんばります!



645 名前:nobodyさん mailto:sage [2009/02/08(日) 16:20:11 ID:???]
自分の頭の程度が悪うございました

646 名前:nobodyさん [2009/02/08(日) 16:26:13 ID:SHT1by4H]
バリデーションで、一つのフィールドに対して、
複数のルールを設定していた場合に、
一つのエラーが検知した場合以降の
バリデーションはおこわないことは、出来ますか?

例えば、期間の入力があった場合、入力値が正しく
なかった場合、その後の妥当な期間であるかどうかの
チェックはいらないのですが。

647 名前:nobodyさん mailto:sage [2009/02/08(日) 16:41:27 ID:???]
>>644
これから始めるなら、この本お勧め。
「CakePHP徹底入門」 CakePHP1.2で説明してあるから、とても楽に入門できた。
ttp://www.amazon.co.jp/CakePHP徹底入門-イージーゲート/dp/479811717X
↓このページも入門者にお勧めかな。
ttp://kuri6005.sakura.ne.jp/cake/wiki/

648 名前:nobodyさん mailto:sage [2009/02/08(日) 16:53:37 ID:???]
>>646
book.cakephp.org/ja/view/133/
'last' => true

649 名前:nobodyさん mailto:sage [2009/02/08(日) 17:20:04 ID:???]
>>648
ありがとうございます。
すみません。
しっかりと説明されていますね。
もっとちゃんと読まないといけませんね。

650 名前:nobodyさん [2009/02/08(日) 17:46:55 ID:srWubjja]
携帯対応ページを作ろうと思って、/m/でリクエストされたら携帯ページを表示ってやろうとしていて
表示はうまくできたんですけど、PC用ページのフォームで、
$form->create('post', array('action' => 'view'));
ってやったときに、$this->dataにデータが入っているときは、
action="/post/view/1"とかになるんだけど、データが入ってないと
action="/m/post/view"って/m/が先頭につけられてしまいます。
プログラム中で/m/をつけてるのはroutes.phpで
Router::connect('/m/:controller/:action/*", array('prefix' => 'mobile'));
としているとこだけなんだけど、$form->createってここを見てURLを
自動生成してるんでしょうか?
だとしたらどうやったらうまく解決できるんでしょうか?

651 名前:nobodyさん [2009/02/08(日) 18:01:22 ID:srWubjja]
すんません、Router::Connectをコメントにしたらちゃんとうごきました。
ということは$form->createではこれをみてURLを生成してるんですね。
携帯、PCの両用サイト作ってる人はどうやって解決してるんでしょうか?

652 名前:nobodyさん mailto:sage [2009/02/08(日) 21:16:52 ID:???]
>>647
ご丁寧にありがとうございます。
明日の夜にでも本屋に行ってこようと思います!

653 名前:nobodyさん mailto:sage [2009/02/08(日) 21:59:25 ID:???]
cakephp.jp/

654 名前:nobodyさん mailto:sage [2009/02/08(日) 22:39:55 ID:???]
>>635
うちもそれ試した。3行になっちゃった。
やっぱ、>626の言う通り、自分で
フォームを書かないといけないのか・・・マンドクセ

生年月日を入力させるのに、セレクトメニューでは
不便なので、直接「年」「月」「日」の数字を
入力させたいのね。
何か、簡単な方法ある?

できれば、年号(MTSH)が付いてると西暦に直して
欲しいんだけど・・・(そこまで求めるのは無理か。)




655 名前:nobodyさん mailto:sage [2009/02/08(日) 22:49:40 ID:???]
素のhtmlのタグを、cake流に変換するようなフィルタとかあればいいなー

656 名前:nobodyさん mailto:sage [2009/02/08(日) 23:14:43 ID:???]
>>654
'div' => false にして、出てくるフォームが改行されるのは、FormHelperの問題と違う。
CSSでそう指定してあるから改行される。

input {
clear: both;
}

みたいな感じで。

いっぺん、読み込んでるCSSファイルを移動するなりして、読み込めないようにしてみろ。


657 名前:nobodyさん mailto:sage [2009/02/09(月) 00:07:57 ID:???]
>>656
CakePHP1.2の変態cssをとっぱらったら、'div' => 'false'を付けなくてもtextBoxが1行に
ちゃんと3つ並ぶ。質問者はCakePHP1.2の変態cssを突破してtextBoxを1行に並べる方法を
質問しているのだと思う。
<?php
echo $form->text('hoge0');
echo $form->text('hoge1');
echo $form->text('hoge2');
?>
<br>
<br>
<?php
echo $form->text('hoge0', array('div' => 'false'));
echo $form->text('hoge1', array('div' => 'false'));
echo $form->text('hoge2', array('div' => 'false'));
?>

>>654
自分でフォームを直接書いたとしても、CakePHP1.2の変態cssの壁に阻まれると思う。
敵はCakePHP1.2の変態cssだと思う。変態cssを攻略するのが近道。

tableタグを使うと変態cssの中でもtextBoxを1行で表示できる。が詳細なレイアウトを
調整しようとすると変態cssと戦わざるを得ない。
<table>
<tr>
<td><?php echo $form->text('hoge0'); ?></td>
<td><?php echo $form->text('hoge1'); ?></td>
<td><?php echo $form->text('hoge2'); ?></td>
</tr>
</table>

658 名前:nobodyさん mailto:sage [2009/02/09(月) 00:13:00 ID:???]
何で変態CSSのために
無駄な労力使ってるんだw

659 名前:nobodyさん mailto:sage [2009/02/09(月) 00:18:41 ID:???]
>>658
暇で他にやる事もないので、チョットやってみただけ。

660 名前:nobodyさん mailto:sage [2009/02/09(月) 01:19:15 ID:???]
てことはCSSを、YUIとかのリセットに変えればいいだけか

661 名前:nobodyさん mailto:sage [2009/02/09(月) 02:53:29 ID:???]
>>659
じゃあ僕のサイト作るの手伝ってくれません?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<152KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef