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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/06/20(金) 01:24:40ID:???
http://www.cakephp.org/

10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

マニュアル日本語化
http://www.cakephp.jp/doc/

Cookbook :: 1.2 Collection :: マニュアル
http://book.cakephp.org/ja

日本語フォーラム
http://cakephp.jp/modules/newbb/

あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/

CakePHP入門リンク集
ttp://pub.studio15.jp/2007/11/13/cakephp-links/

【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0039nobodyさん2008/06/27(金) 19:16:10ID:???
よぉ
http://hal456.net/qdmail/
これって既出?

マルチバイトのメール送信用のライブラリなんだけど。
CakePHPでも使えるようになってるみたい。
0040nobodyさん2008/06/27(金) 19:38:01ID:???
>>39
いいね
φ( ̄ー ̄ )メモメモ
0041nobodyさん2008/06/27(金) 21:35:16ID:???
RC2きたね〜
0042nobodyさん2008/06/29(日) 23:54:57ID:???
1.1.19で、belongsToがあるモデルのcontrollerをbakeし、
scaffoldingをnにしてbasic class methodsをyにすると、
Look okey? が出る前のところで segmentation fault します。
手作業でコントローラを書いても、webからアクセスすると
apacheがexit signal Segmentation fault (11)になります。
前スレのログが見られないのですが、これは既出ですか?
1.1.18だと問題ないのですが、本家はこの問題に気づいているでしょうか。
0043422008/06/30(月) 14:56:55ID:???
同じような現象が出てる人を見つけました。
ttp://logs.cakephp.nu/cakephp/chat.log.2008-01-02#line_11_33_taddis
ttp://groups.google.co.jp/group/cakephp-de/browse_thread/thread/88c5b12791c71db2/5880a05bac875f55?lnk=raot

当方の環境は、サーバはCentOS4・PHPはphp-4.3.9-3.22.9・apacheは2.0.52-38.ent.centos4.2
DBはpostgresql-8.2.6-1PGDGです。svnの1.1.x.xでも同じ現象が起こります。
0044nobodyさん2008/07/01(火) 03:17:12ID:Qd4NRnlG
>>42
bakeなんて使ってんのw
そういう思考がそもそも素人思考
0045nobodyさん2008/07/01(火) 06:48:02ID:???
bake使うことがそんなに問題なの?

一アクション(一ページ)たかだか数行の
テンプレートを生成するだけじゃん。

手動でテンプレートファイルをコピーするのと何も変わらん。
0046nobodyさん2008/07/01(火) 08:05:38ID:???
いちいち玄人ぶる奴ってなんなの?
一生そうやって過ごすのかね?
0047nobodyさん2008/07/01(火) 08:26:54ID:???
RailsとかAkelosは、いわば最初にbakeしてるようなものだろ。
cakeの場合は、scaffoldでお試しした後でbakeしてるだけで。
やってるのは同じ。bakeを悪く言う意図が分からん。
0048nobodyさん2008/07/01(火) 17:26:19ID:???
そんなのも分からないの?
自尊心の維持手段が他にないだけだろう、明らかに。
0049nobodyさん2008/07/01(火) 17:47:52ID:???
他人の批難をする事でしか自我の維持が出来ない奴は仕事でも絡むがマジうざいなw
0050nobodyさん2008/07/01(火) 18:02:43ID:???
CakePHP用に配布してるアプリケーションで、
アップグレードに伴って、DBのアップグレード
(テーブルや項目の追加)が必要になった場合、
どうやって管理するの?
0051nobodyさん2008/07/01(火) 21:00:29ID:???
1.CakePHP migrationでぐぐる

2.CakePHP Schemaでぐぐる
  DBのアップグレードは知らんけど、
  before、afterがあるからそれでやるんじゃね?
0052nobodyさん2008/07/01(火) 21:51:41ID:???
どちらもググりましたが。読んだ印象だと、
どちらにも定番の方法が無いように思ったのですが。
CakePHPを使われている皆さんは、苦労されてない?

また、ターミナルを使った処理が必要になるのが、
ちょっと一般向けじゃないなーと。できれば、
アップグレード用の(ローカルの)URLに接続して、
対話的にアップグレードできたら良いのに。

アプリの開発者とかなら、ターミナルでの作業も
平気でしょうけれど。一般の利用者の方にアップ
グレードの作業をしてもらうには、ターミナルは
ちょっと敷居が高いので。
0053nobodyさん2008/07/01(火) 22:11:14ID:???
> アップグレード用の(ローカルの)URLに接続して、
> 対話的にアップグレードできたら良いのに。

そういうコントローラを作ったら?
0054nobodyさん2008/07/01(火) 22:20:40ID:???
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
   /  .`´  \
     ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (・∀・∩< なるほど!!
    (つ  丿 \_________
    ⊂_ ノ
      (_)

って、私には無理orz
0055nobodyさん2008/07/01(火) 22:28:14ID:???
> って、私には無理orz
なんだ。ひやかしかw

この板に来るべき人じゃないな。君は。
0056nobodyさん2008/07/01(火) 23:23:29ID:???
何?ここはそんな高レベルな方々が集う場所でしたか。
そりゃ、失礼しました。
0057nobodyさん2008/07/01(火) 23:38:50ID:???
>>56
そのレスのレベルの高さは認めてやる
0058nobodyさん2008/07/01(火) 23:44:44ID:???
ま。ひやかしと思われてるついでに。

Akelosだと、migrationではフィールドの種別を
自動で決めてくれたり、hasoneとかの設定でも
指定する内容が少なくて、楽そうなんだけど。

CakePHPは、そういうのをかなりの部分、自分で
設定させられるよね? 入れ格子の配列で。
あれって、不便と思わない?
Akelosみたいに、省略されたら自動で設定される
ようになってたら、もっと楽なのに。
0059nobodyさん2008/07/01(火) 23:50:07ID:???
定番な方法がないってのはたしかにややこしいけど、
必要だったら適当に書けばいいんじゃない。

チェックアウトはできるがコンソール使えないみたない
うざいデザイナー相手にしてると嫌になるので
難しいと感じるとしても時間さいて書く価値はあるとおもうよ。

まあ、どの方法使うにしても、
アクセスされたらコマンドなりクエリなりを流すだけだと思うのだが。
0060nobodyさん2008/07/01(火) 23:56:33ID:???
Webインターフェイスからのファイル操作は大抵の*nix環境で
パーミッション上の問題が起こると思うんだけど、それは回避できるの?
0061nobodyさん2008/07/02(水) 01:09:16ID:BNxnFlGa
Akelosを例に出してる時点でおまえプロじゃないな
0062nobodyさん2008/07/02(水) 01:18:39ID:???
>>58
なんだ。Cakeでもできることじゃんw
0063nobodyさん2008/07/02(水) 01:20:02ID:???
どうせ使うのは開発かテスト環境だろうしなんでもありじゃねえの?
lighttpdで別プロセスとか。apacheだったらsuEXECとか。
0064nobodyさん2008/07/02(水) 01:23:18ID:???
そもそもファイル読む以外することあんの?
0065nobodyさん2008/07/02(水) 02:18:17ID:???
>>60
p2みたく、ローカルで使うのを想定してるので、なんとかなると思う。

>>61
それはRailsでメシ喰ってる人への挑戦状?

私?私は素人ですけどね。

>>62
できる?
http://cakephp.jp/doc/ch06s04.html
を見ても、やっぱり配列で指定してるんだが。これを、
var $hasOne = 'Profile' ;
だけに出来たら、楽だなーと。
テーブルの作成も、
$this->createTable('users', "id, name, created,updated");
ってしたら、少なくとも規約に沿ってる部分は、
idはINTの自動加算とか、createdはupdatedDATETIMEに
してくれたら、楽だなーと。
ま、些細なことですけどね。ρ(-ε- )イヂイヂ
0066nobodyさん2008/07/02(水) 03:29:29ID:???
なにも調べてない奴と話すのは疲れる。お前もう来るな。
http://book.cakephp.org/ja/complete/80/hasone
<?php
class User extends AppModel {
 var $name = 'User';
  var $hasOne = 'Profile';
}
?>
0067nobodyさん2008/07/02(水) 04:28:34ID:taRpZf8M
もっと有益な情報を話し合おうぜw
0068nobodyさん2008/07/02(水) 04:39:46ID:???
>>66
普通にそこまで簡略化出来る事を知らなかった俺涙目
0069nobodyさん2008/07/02(水) 06:31:20ID:???
RCになって、またAuthコンポーネントのパスワード暗号化のタイミング変わった?
なんで戻したんだろ・・・
0070nobodyさん2008/07/02(水) 11:09:21ID:???
>>66
CakePHPのバージョンを書かんかった俺が悪かった。
今、1.1を使ってたんだ。

つーか、ひょっとしてこのスレ、1.2限定?
0071nobodyさん2008/07/02(水) 12:53:32ID:???
1.1だろうが必須なのはモデル名だけって書いてあるんだがわからないのだろうか
0072nobodyさん2008/07/02(水) 17:50:07ID:???
>>70
試してから言えと何度言われればわかるんだ?
0073nobodyさん2008/07/03(木) 09:53:51ID:???
>>71
PHP5なら、モデル名すら、いらんな。
0074nobodyさん2008/07/03(木) 19:53:41ID:???
>>73
そっちのモデル名のことじゃないと思うよ。
0075nobodyさん2008/07/05(土) 14:02:26ID:???
ようやく試す時間が取れました><
1.1でも、>66みたいに出来ました。
今後ともご指導ご鞭撻の程、よろしくお願い申し上げます。
0076nobodyさん2008/07/06(日) 01:37:16ID:???
A,B,Cのテーブルがあって、

A hasMany B

B belongsTo A , B hasMany C

C belongsTo B

の場合、当然、
C belongsTo A
でもあるわけど。それをCのモデルに明示する方法ってありますか?

C belongsTo array('A','B');
ってしたら、scaffoldingのCのviewでエラーが出た。
0077nobodyさん2008/07/06(日) 02:01:54ID:???
CにA_idあんの?
0078nobodyさん2008/07/06(日) 02:25:50ID:???
CにA_idありました。
もちろん、B_idもあります。
0079nobodyさん2008/07/06(日) 02:37:38ID:???
エラーの内容が、
Notice: Undefined index: title in /Applications/MAMP/htdocs/cake/cake/libs/view/templates/scaffolds/view.thtml on line 52
だったので、AやCのテーブルからtitle, nameのフィールドを別名にしたら、
エラーは出なくなりました。

しかし、"title"や"name"が使えないのは痛いな。
0080nobodyさん2008/07/06(日) 02:44:59ID:???
んなわけない
0081nobodyさん2008/07/06(日) 02:50:57ID:???
あ・・・・・・・・解決したかも・・・・

C belongsTo array('B','A');
って書いてた(汗

C belongsTo array('A','B');
にしたら、直ったっぽい
0082nobodyさん2008/07/06(日) 14:24:50ID:???
いまから作る新サイト、1.2でやるべきか悩む…
0083nobodyさん2008/07/06(日) 14:32:55ID:???
どっちでもいいよ、覚悟さえすれば。
0084nobodyさん2008/07/07(月) 22:11:14ID:???
hasAndBelogsToManyって、便利そうだけど、工夫がいるね。
0085nobodyさん2008/07/09(水) 18:44:09ID:???
モデルのメンバ変数でアソシエーション定義すると
既存のデータ取得関数に影響が出るから
アソシエーションの設定は
メソッド単位、もしくはメソッド内のロジック単位で
bindModel() をした方がいいね
0086nobodyさん2008/07/10(木) 03:21:38ID:???
自分の選択でフリーターはともかくとして、
フリーターしか選択肢がないというのはよほど問題がある人だろう。
先天や事故で身体的に無理というならばまだしも、
精神的にとかは、もう笑うしかないな。
どれだけ甘えているのだと。
そういうのはバイトで当然だよ。
むしろ金をやる必要すら無い。
0087デフォルトの名無しさん2008/07/10(木) 11:10:29ID:???
CakePHP1.2,PHP5でviewにチェックボックスを表示しています。
デフォルトをチェックが入った状態にしたいのですが、以下のようにvalueを指定してもチェックが入りません。
どのように指定すればチェックが入るのでしょうか?

echo'<div>'.$form->checkbox('comset/admin',array('label'=>"",'value'=>1)).'管理者のみ表示</div>';
0088nobodyさん2008/07/10(木) 13:01:36ID:???
>>87
# ComsetsController
if (emtpy($this->data))
$this->data['Comset']['admin'] = 1;
# Views
echo'<div>'.$form->checkbox('Comset.admin',array('label'=>"")).'管理者のみ表示</div>';
じゃないかな?
0089nobodyさん2008/07/10(木) 13:05:38ID:???
>>85
1.2ならContainableビヘイビア
0090nobodyさん2008/07/10(木) 14:37:07ID:???
beforeFindで$queryDataを見て、特定の検索条件があったときに
ほにゃらって処理をしているんだけど、

CakePHP1.2から、$conditions => array('key =' => 'value');になったでしょ?
今まではarray_keysでkeyがあるかどうかって見ていたんだけど、
これからは'key ?'ってなっちゃって?の部分が変わるから
単純にarray_keysが使えないんだよね。

これの代わりになる便利な関数って用意されているか知らない?
0091872008/07/10(木) 16:53:38ID:???
>>88
実現できました、ありがとうございます。

立て続けで申し訳ないのですが、ラジオボタンの表示で
ラジオにチェックを入れるにはどのように指定すればよいのでしょうか?
ラジオの数が動的に変わるため、以下のようにして作成しています。
ループ内である条件に一致する場合に、ラジオにチェックを入れるようにしたいです。
一致するのはループ内で1回のみです。
for($i=1; $i<=$n; $i++){
$arradio[$i] = $dt_hoge['Table']['no_'.$i]."<br />";
}
echo '<div>'.$form->radio('hogeset/hoge',$arradio,array('legend' => false)).'</div>';
0092nobodyさん2008/07/10(木) 17:06:37ID:???
>>91
forはview内かな?
だとしたら、viewで
if (!empty($this->data['Hogeset']['hoge']) $this->data['Hogeset']['hoge'] = 初期値 ;
じゃまいか?
やりたいことを、良く理解していないから、はずしてたらすまん。
0093872008/07/10(木) 19:50:48ID:???
>>92
ありがとうございます。

$this->dataがない状態で選択しようとしたからか、
教えていただいた方法では、実現できませんでした。

いろいろ試してみた結果、
選択したい値をradio生成時にvalueで指定したらとりあえずできました。
echo '<div>'.$form->radio('ansset/ansr',$arradio,array('legend' => false,'value'=>4)).'</div>';
0094nobodyさん2008/07/10(木) 20:52:53ID:???
>>93
valueを直で指定すると、validation error のときに困るんじゃない?
0095nobodyさん2008/07/11(金) 15:46:07ID:???

今、1.2betaから1.2RC2に移行しているわけだが、

変わりすぎてて俺、涙目wwwww orz



RC2 から 正式版の間ではあまり変わらない事を祈っている・・・
0096nobodyさん2008/07/11(金) 16:03:01ID:???
stableっていつごろなのかな?
RC1→2はわりと早かったけど・・・
0097nobodyさん2008/07/11(金) 17:01:52ID:???
1.2出たら、ポケットマニュアルも1.2対応で
すぐに出るんだろうか?
0098nobodyさん2008/07/12(土) 03:58:01ID:GP2h4Bov
Aモデルの中で
Bモデル->save()みたいなことしたいけど、ダメ?
コントローラ内で
Aモデルのデータとってきて
$this->Bモデル->save()するを完結するのががベストかな?

0099nobodyさん2008/07/12(土) 03:59:50ID:GP2h4Bov
モデルを厚くするのがベストてCakePHPに書いてあるけど
モデルの自由度が凄く悪い気がするんだが・・・
0100nobodyさん2008/07/12(土) 04:04:06ID:GP2h4Bov
コントローラだと何でも出来ちゃうから
結局コントローラが厚くなってしまうんだよな
一通りコーディングが終わってからリファクタリングする形で
モデルを厚くしていかないと。
調べながらだと時間もったい気がする
0101nobodyさん2008/07/12(土) 11:07:21ID:???
1.2のスライドにも、モデルが薄く、
コントローラが厚くなってしまうのが
問題って書いてあるな。
わざわざスライドにしてるってことは、
1.2で改善されるんやろか?
0102nobodyさん2008/07/12(土) 13:48:03ID:???
問題なのは、フレームワークじゃなくて、
そういうコードを書くなってことだろう。
0103nobodyさん2008/07/12(土) 19:30:01ID:???
>>100
> コントローラだと何でも出来ちゃうから
> 結局コントローラが厚くなってしまうんだよな

似たような話。

関数作らなくても何でも出来ちゃうから
結局コードが長くなってしまうんだよな。

結局だ、単なる経験の問題。
経験をつめば自然といいコードが書けるようになるよ。
0104nobodyさん2008/07/13(日) 07:35:50ID:yyUJjXK2
どれだけ頑張っても
ModelとControllerの厚さを同じくらいにまでしか
もっていけねえw
強引にモデルにもっていけなら別だけどw
0105nobodyさん2008/07/13(日) 17:55:25ID:???
初歩的な質問なんだけど、WEBのフォームから渡された値って、
基本的にモデルのvalidatesで全部チェックしていいんもんなんですか?

例えば、会員の新規登録でパスワード(password)と
パスワード確認(password2)を比較して同一かチェックするとか。
0106nobodyさん2008/07/13(日) 18:01:54ID:???
規約に同意するかどうか、とかもモデルのバリデーションでやってます。
0107nobodyさん2008/07/14(月) 02:01:47ID:???
「CakePHPガイドブック」ってもう廃刊なのですか?
去年末に発売したばっかりなのになぜ?
0108nobodyさん2008/07/14(月) 06:42:09ID:???
内容が基本的に1.1だからでは?
フレームワーク本としては、かなりいい本。
0109nobodyさん2008/07/14(月) 14:05:46ID:???
1.2RC2の話。

1.2からbehaviorsのattach/detachができるって、
あちこちに書いてあるけど、最近仕様が変わってるっぽいね。

よく書いてあるのが、コントローラで$this->Model->attach(ビヘイビア名)。
でも今は$this->Model->Behaviors->attach(ビヘイビア名)
間に、Behaviors(BehaviorCollection)が入ったようだ。
0110nobodyさん2008/07/14(月) 15:48:07ID:???
チラシの裏

どうも、RC2にしてからユニットテストでメモリ不足と言われる。
メモリ制限をゆるくすればいいのだが腑に落ちない。

それで調べてみると、なんとアサーション一つにつき40KBぐらいも消費していた。
アサーションの数が3000個だと120MB。そりゃ足りないって言われるわなw

それでコードを追ってみてみると
/cake/tests/lib/cake_reporter.phpの関数
(特によく呼ばれるのはpaintPass)の中のob_start();が原因。

なんか知らんが、ob_start();を一回呼び出すとそれだけで40KBも消費する。
ob_end_flush()を呼び出すとメモリは解放されるっぽいけど、
どうもこのクラスの中では呼び出していない。(どこか他で呼び出しているの?)

そしてアサーション一つごとにob_startが連続して呼び出されることになる。

ob_startごときで40KBも消費するのも、変な感じだが
このob_startっているんだろうか?前のリビジョンのコードには存在しなかった。
とりあえず取ってみたが変化はわからない。
現在リファクタイリング中みたいだからそのうちどうにかされるのかもしれない。
01111052008/07/14(月) 17:10:17ID:???
>>106
そういうもんなんですね。
どもです。
0112nobodyさん2008/07/15(火) 10:18:07ID:???
findNeighboursで1テーブルから前のID,後のIDを↓のように取得しています。

$where = array('hogekb =' => 1);

$this->set('nei_kekka', $this->Nani_table->findNeighbours($where,"Nani_table.id",$id));

ここに1テーブルjoinさせたいのですが、
以下のように設定したjoin句はfindNeighboursのどこにセットすればよいのでしょうか?

$options['joins'][]=
array(
'type' => 'INNER',
'alias' => 'Hoge_table',
'table' => 'hoge_table',
'conditions' => array('Hoge_table.id = Nani_table.id')
);
0113nobodyさん2008/07/15(火) 14:41:34ID:kKo7V/Gs
DBに入れるほどではなく、CSVファイルとしてデータを持っていて
それをコントローラから参照したい場合、CSVファイルはどこに設置するのが
一番スマートなんでしょうか?
0114nobodyさん2008/07/15(火) 14:50:47ID:???
俺もそれ知りたいな。
XMLファイルとか。

tmpフォルダとかかな?
0115nobodyさん2008/07/15(火) 16:20:51ID:???
>>113
webroot の files フォルダ。これが一番いいと思う。
0116nobodyさん2008/07/15(火) 17:29:56ID:???
>>115
外部から見られたくないファイルなのでは??
01171132008/07/15(火) 20:00:24ID:???
>>115
そうなんです、外部から見られたくはない。
いや見られても良いデータなんですけど、なんか変な感じなので。

>>114
tmpフォルダは考えたんですけど、役割的に違和感があるんですよね。


まぁ、結局DBにつっこんで今はやってみましたけど。
うーん。
0118nobodyさん2008/07/15(火) 20:22:19ID:???
バージョンアップの際、appフォルダごと入れ替えるため、
appフォルダ以下にはデータは入れたくない。
cakeフォルダ以下には、データは入れるはずない。

appやcakeフォルダと同じ階層に、dataフォルダでも
作って、例えば画像ファイルとか入れられれば、
良さげに思うが。それは無理なん?
01191132008/07/16(水) 11:57:50ID:???
>>118
あ、その方法がありましたね。
確かにそれであれば全然いける上に、スマートかも。
ありがとです。今後、検討してみます。
0120nobodyさん2008/07/16(水) 13:11:14ID:ahXuksxu
>>113
DBに入れるほどではないデータは配列にしてモデルに入れてるよ
0121nobodyさん2008/07/16(水) 13:16:24ID:ahXuksxu
画像ファイルはvendorsでいいと思うんだが

0122nobodyさん2008/07/16(水) 13:22:04ID:ahXuksxu
一番スマートなのはプロジェクトappと同じ階層にdataフォルダだな
CakePHPはデータ保存場所を考慮したフォルダ構成じゃないから
CakePHP内にデータを置くこと自体がスマートじゃ無いってことかな
0123nobodyさん2008/07/16(水) 13:24:33ID:ahXuksxu
フレームワークの中にデータを保管しようという思考が
そもそも、おかしい気がしてきたよ
0124nobodyさん2008/07/16(水) 13:27:51ID:ahXuksxu
フレームワーク外にcsvファイルを置くのが一番ベストだ!
0125nobodyさん2008/07/17(木) 08:07:12ID:/Q3Ys2pH
フレームワークっていつまで使えるだろう
10年後、20年後にも、CakePHPはあるだろうか?
そもそもPHPは使われてるだろうか?
0126nobodyさん2008/07/17(木) 08:11:21ID:???
>>125
ムリポ
0127nobodyさん2008/07/17(木) 08:46:29ID:???
>>125
じゃあ、こう考えるんだ
10年前はどうだったかを。

それで今も残っていればあるってことになる。

って10年前はPHPそのものがなかったか。
0128nobodyさん2008/07/17(木) 09:23:54ID:r8Tb5l59
その都度、旬な商売道具(今ならphpフレームワーク)使って儲けるしかない。
これやれば10年後安心てのはIT社会には無い
0129nobodyさん2008/07/17(木) 09:26:42ID:???
UTF-8、PHP1.2で作ってるんだけど
フォルダ内のファイル名を読み込んだ時に
$file = readdir($dir)
だけだと日本語のファイル名が文字化けしてしまう。
部分的に関数通して文字化け回避する方法ってある?
01301292008/07/17(木) 09:58:29ID:???
128はCakePHP1.2の間違いです。
0131nobodyさん2008/07/17(木) 16:12:51ID:hC9JNlTl
CakePHP1.2を使用しているのですが、
AppModel::queryを使って取得したデータを
paginatorに渡す方法ってありますか?
01321312008/07/17(木) 16:26:20ID:hC9JNlTl
任意のSQLでpaginateがしたいんです!

01331312008/07/17(木) 17:05:12ID:hC9JNlTl
無茶苦茶な方法ではありますが、
対象のModelでpaginateをオーバーライドして、
$coditionsの中にsqlを入れて取り合えず
期待する動作は得られるようになりました。
0134nobodyさん2008/07/17(木) 18:56:26ID:???
>>127
PHPはあっただろw
0135nobodyさん2008/07/18(金) 16:19:03ID:???
>>133
無茶じゃなくてまっとうな方法。
Modelにpaginateメソッドは存在しないからオーバーライドではない。
Controllerのpaginateメソッドが最終的にfindする際に
Modelのpaginateメソッドが存在すれば代わりにそっちを呼ぶようにに作ってある。

0136nobodyさん2008/07/18(金) 19:07:42ID:???
modelはDBのテーブルと1対1が想定されているけど

DBテーブルに登録する際にバリデート内容が異なる画面が3つあった場合
DBテーブル1に対してモデルが3つ必要になるよね

Aテーブルがあったとしたら
A1モデル 使用テーブルA
A2モデル 使用テーブルA
A3モデル 使用テーブルA
それぞれのバリデート処理を実装することになるよね
0137nobodyさん2008/07/18(金) 19:08:40ID:???
ログイン形式の携帯サイトを作ってるのですが、
CakePHPで「ログインされたかどうか」はどのように持つのが一般的なのでしょうか?
PCサイトではセッションを使うことが多かったんですが、キャリアによってセッションが使えない場合があると聞いたもので。
0138nobodyさん2008/07/18(金) 19:11:29ID:???
DBテーブルに登録する際にバリデート内容が異なる画面が3つあった場合
ひとつのモデルで完結できるのかな?

A1モデル 使用テーブルA

画面1のバリデート処理
画面2のバリデート処理
画面3のバリデート処理
0139nobodyさん2008/07/18(金) 23:07:31ID:???
普通にケースごとのvalidateメソッド書いてるけど。
■ このスレッドは過去ログ倉庫に格納されています