【PHP】フレームワーク CakePHP 4ホール目【v1.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/20(金) 01:24:40ID:???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/
0008nobodyさん
2008/06/23(月) 11:43:43ID:???0009nobodyさん
2008/06/23(月) 18:12:30ID:Buu9Vutr$hasAndBelongsToManyが設定されたUserモデルとUserGroupモデルがある場合に、
Userを登録すると当時に(単|複)数の所属グループをsaveしたいときって、簡単にするにはどうすればいいのでしょう?
$group_ids = 2;//ユーザーグループのIDを仮に2とする
$data['User']['name'] = $data['User']['name'];
$data['User']['register_date'] = date("Y-m-d H:i:s");
$data['User']['created'] = $data['User']['register_date'];
$data['User']['updated'] = $data['User']['register_date'];
$data['UserGroup']['user_group_id'] = $group_ids;//グループを設定
}
$this->controller->User->create($data);
$this->controller->User->save();//レコードを保存
こうした場合に、グループIDが単数(変数)の場合は無事にUserGroupテーブルにもリンクレコードが書き込まれたのですが、
$group_ids = array(2,3);//ユーザーグループ2&3を同時にリンク設定
としたい場合は別の記述方法があるのでしょうか?
0010nobodyさん
2008/06/24(火) 05:09:49ID:???作ったビューを普通にusesに入れるだけで問題ないのかな・・・?
0011nobodyさん
2008/06/24(火) 12:37:51ID:???だれか訳して。
0012nobodyさん
2008/06/24(火) 15:25:43ID:FTW7odGnあんたが予測するコーヒーとチケット、、、今日出るメジャーなRC2が無くても
0013nobodyさん
2008/06/24(火) 15:58:10ID:???0014nobodyさん
2008/06/24(火) 16:32:54ID:???大きな変更は無いよ
0015nobodyさん
2008/06/24(火) 18:09:51ID:???「コーヒーとチケットを、、、何が起ころうともRC2は今日だ!」
じゃないかなぁ、、、分からん
0016nobodyさん
2008/06/24(火) 18:26:54ID:???0017nobodyさん
2008/06/24(火) 20:12:18ID:???コーヒーはケーキだからとして、
チケット? 食券ということか?
mjor むじゃー mjor むじょあー mjor えむじょあ
0018nobodyさん
2008/06/24(火) 20:40:40ID:???0019nobodyさん
2008/06/24(火) 20:42:03ID:???mjorはmajorのtypo
0020nobodyさん
2008/06/25(水) 02:21:23ID:???スターバックスとかでてくるのよ。
なんか修正項目以外の意味があると思うんだど。
ホテルの用語的な。もしかしたらCM?
0021nobodyさん
2008/06/25(水) 03:27:40ID:???CakePHPてこんなレベル低いんけw
0023nobodyさん
2008/06/25(水) 10:18:50ID:???0024nobodyさん
2008/06/25(水) 17:50:14ID:???なんか派生フレームワークだらけなんだけど…
0025nobodyさん
2008/06/25(水) 22:53:19ID:???0026nobodyさん
2008/06/25(水) 23:00:38ID:???0027nobodyさん
2008/06/25(水) 23:06:02ID:???比べてみて、どう?
設置に関してはCakeが一番かんたんかな?
0028nobodyさん
2008/06/25(水) 23:19:01ID:???いや、CIのほうが簡単かと。
CIのほうがライトウェイト。
日本語マニュアルを読むと、Cakeよりはるかに簡単なのが分かる。
んだけど、Cakeの方がコーディングは楽できる気がするなぁ。
0029nobodyさん
2008/06/26(木) 00:53:31ID:???http://pc11.2ch.net/test/read.cgi/php/1122105465/
0030nobodyさん
2008/06/26(木) 01:31:17ID:???パク・・いや参考にしてみたいんだけど。
0031nobodyさん
2008/06/27(金) 01:01:08ID:Tw7z8KLrそれいぜんの1.2で開発したアプリケーションのログイン機能がまるっと動かないのだが。
0032nobodyさん
2008/06/27(金) 01:51:42ID:???CakePHP、あんまりいじってないし、ソース見るの面倒なので、
http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html
テキスト比較ツールで比較してみたら結構修正入ってるみたいよ。
0033nobodyさん
2008/06/27(金) 02:30:26ID:bfytbvRvこんな感じでやってます。変かな?
function __construct(){
App::import('Model', 'Unko');
$this->model =& new Unko();
}
こうすれば各メソッド内から
$this->modelで呼べる
003433
2008/06/27(金) 02:53:40ID:bfytbvRvfunction __construct(){
parent::__construct();
App::import('Model', 'Unko');
$this->model =& new Unko();
}
じゃないとバグる
0035nobodyさん
2008/06/27(金) 03:02:45ID:bfytbvRvモデル内てコントローラよりも自由度が低いクセに
モデルでのロジックを多く実装するのがベストだなんて
無茶やな。
0036nobodyさん
2008/06/27(金) 03:30:21ID:bfytbvRvコントローラ内でAモデルのメンバ変数にBモデルのオブジェクトを代入すればいいだけか!
そうすれば、モデル内からモデルをimportしなくても済むな!
そうか、そうか
0037nobodyさん
2008/06/27(金) 03:50:32ID:bfytbvRvモデル内に独自メンバ変数を作ると
モデル内の自由度が上がる
0038nobodyさん
2008/06/27(金) 14:30:32ID:???リレーションがあるはず、つまりアソシエーションでつながっているはず。
その場合、A->B->func()ってな感じで呼び出せる。
0039nobodyさん
2008/06/27(金) 19:16:10ID:???http://hal456.net/qdmail/
これって既出?
マルチバイトのメール送信用のライブラリなんだけど。
CakePHPでも使えるようになってるみたい。
0041nobodyさん
2008/06/27(金) 21:35:16ID:???0042nobodyさん
2008/06/29(日) 23:54:57ID:???scaffoldingをnにしてbasic class methodsをyにすると、
Look okey? が出る前のところで segmentation fault します。
手作業でコントローラを書いても、webからアクセスすると
apacheがexit signal Segmentation fault (11)になります。
前スレのログが見られないのですが、これは既出ですか?
1.1.18だと問題ないのですが、本家はこの問題に気づいているでしょうか。
004342
2008/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:Qd4NRnlGbakeなんて使ってんのw
そういう思考がそもそも素人思考
0045nobodyさん
2008/07/01(火) 06:48:02ID:???一アクション(一ページ)たかだか数行の
テンプレートを生成するだけじゃん。
手動でテンプレートファイルをコピーするのと何も変わらん。
0046nobodyさん
2008/07/01(火) 08:05:38ID:???一生そうやって過ごすのかね?
0047nobodyさん
2008/07/01(火) 08:26:54ID:???cakeの場合は、scaffoldでお試しした後でbakeしてるだけで。
やってるのは同じ。bakeを悪く言う意図が分からん。
0048nobodyさん
2008/07/01(火) 17:26:19ID:???自尊心の維持手段が他にないだけだろう、明らかに。
0049nobodyさん
2008/07/01(火) 17:47:52ID:???0050nobodyさん
2008/07/01(火) 18:02:43ID:???アップグレードに伴って、DBのアップグレード
(テーブルや項目の追加)が必要になった場合、
どうやって管理するの?
0051nobodyさん
2008/07/01(火) 21:00:29ID:???2.CakePHP Schemaでぐぐる
DBのアップグレードは知らんけど、
before、afterがあるからそれでやるんじゃね?
0052nobodyさん
2008/07/01(火) 21:51:41ID:???どちらにも定番の方法が無いように思ったのですが。
CakePHPを使われている皆さんは、苦労されてない?
また、ターミナルを使った処理が必要になるのが、
ちょっと一般向けじゃないなーと。できれば、
アップグレード用の(ローカルの)URLに接続して、
対話的にアップグレードできたら良いのに。
アプリの開発者とかなら、ターミナルでの作業も
平気でしょうけれど。一般の利用者の方にアップ
グレードの作業をしてもらうには、ターミナルは
ちょっと敷居が高いので。
0053nobodyさん
2008/07/01(火) 22:11:14ID:???> 対話的にアップグレードできたら良いのに。
そういうコントローラを作ったら?
0054nobodyさん
2008/07/01(火) 22:20:40ID:???\ __ /
_ (m) _ピコーン
|ミ|
/ .`´ \
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(・∀・∩< なるほど!!
(つ 丿 \_________
⊂_ ノ
(_)
って、私には無理orz
0055nobodyさん
2008/07/01(火) 22:28:14ID:???なんだ。ひやかしかw
この板に来るべき人じゃないな。君は。
0056nobodyさん
2008/07/01(火) 23:23:29ID:???そりゃ、失礼しました。
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:???パーミッション上の問題が起こると思うんだけど、それは回避できるの?
0061nobodyさん
2008/07/02(水) 01:09:16ID:BNxnFlGa0063nobodyさん
2008/07/02(水) 01:20:02ID:???lighttpdで別プロセスとか。apacheだったらsuEXECとか。
0064nobodyさん
2008/07/02(水) 01:23:18ID:???0065nobodyさん
2008/07/02(水) 02:18:17ID:???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:taRpZf8M0069nobodyさん
2008/07/02(水) 06:31:20ID:???なんで戻したんだろ・・・
0070nobodyさん
2008/07/02(水) 11:09:21ID:???CakePHPのバージョンを書かんかった俺が悪かった。
今、1.1を使ってたんだ。
つーか、ひょっとしてこのスレ、1.2限定?
0071nobodyさん
2008/07/02(水) 12:53:32ID:???0075nobodyさん
2008/07/05(土) 14:02:26ID:???1.1でも、>66みたいに出来ました。
今後ともご指導ご鞭撻の程、よろしくお願い申し上げます。
0076nobodyさん
2008/07/06(日) 01:37:16ID:???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:???0078nobodyさん
2008/07/06(日) 02:25:50ID:???もちろん、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:???0083nobodyさん
2008/07/06(日) 14:32:55ID:???0084nobodyさん
2008/07/07(月) 22:11:14ID:???0085nobodyさん
2008/07/09(水) 18:44:09ID:???既存のデータ取得関数に影響が出るから
アソシエーションの設定は
メソッド単位、もしくはメソッド内のロジック単位で
bindModel() をした方がいいね
0086nobodyさん
2008/07/10(木) 03:21:38ID:???フリーターしか選択肢がないというのはよほど問題がある人だろう。
先天や事故で身体的に無理というならばまだしも、
精神的にとかは、もう笑うしかないな。
どれだけ甘えているのだと。
そういうのはバイトで当然だよ。
むしろ金をやる必要すら無い。
0087デフォルトの名無しさん
2008/07/10(木) 11:10:29ID:???デフォルトをチェックが入った状態にしたいのですが、以下のようにvalueを指定してもチェックが入りません。
どのように指定すればチェックが入るのでしょうか?
echo'<div>'.$form->checkbox('comset/admin',array('label'=>"",'value'=>1)).'管理者のみ表示</div>';
0088nobodyさん
2008/07/10(木) 13:01:36ID:???# ComsetsController
if (emtpy($this->data))
$this->data['Comset']['admin'] = 1;
# Views
echo'<div>'.$form->checkbox('Comset.admin',array('label'=>"")).'管理者のみ表示</div>';
じゃないかな?
0090nobodyさん
2008/07/10(木) 14:37:07ID:???ほにゃらって処理をしているんだけど、
CakePHP1.2から、$conditions => array('key =' => 'value');になったでしょ?
今まではarray_keysでkeyがあるかどうかって見ていたんだけど、
これからは'key ?'ってなっちゃって?の部分が変わるから
単純にarray_keysが使えないんだよね。
これの代わりになる便利な関数って用意されているか知らない?
009187
2008/07/10(木) 16:53:38ID:???実現できました、ありがとうございます。
立て続けで申し訳ないのですが、ラジオボタンの表示で
ラジオにチェックを入れるにはどのように指定すればよいのでしょうか?
ラジオの数が動的に変わるため、以下のようにして作成しています。
ループ内である条件に一致する場合に、ラジオにチェックを入れるようにしたいです。
一致するのはループ内で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:???forはview内かな?
だとしたら、viewで
if (!empty($this->data['Hogeset']['hoge']) $this->data['Hogeset']['hoge'] = 初期値 ;
じゃまいか?
やりたいことを、良く理解していないから、はずしてたらすまん。
009387
2008/07/10(木) 19:50:48ID:???ありがとうございます。
$this->dataがない状態で選択しようとしたからか、
教えていただいた方法では、実現できませんでした。
いろいろ試してみた結果、
選択したい値をradio生成時にvalueで指定したらとりあえずできました。
echo '<div>'.$form->radio('ansset/ansr',$arradio,array('legend' => false,'value'=>4)).'</div>';
0095nobodyさん
2008/07/11(金) 15:46:07ID:???今、1.2betaから1.2RC2に移行しているわけだが、
変わりすぎてて俺、涙目wwwww orz
RC2 から 正式版の間ではあまり変わらない事を祈っている・・・
0096nobodyさん
2008/07/11(金) 16:03:01ID:???RC1→2はわりと早かったけど・・・
0097nobodyさん
2008/07/11(金) 17:01:52ID:???すぐに出るんだろうか?
0098nobodyさん
2008/07/12(土) 03:58:01ID:GP2h4BovBモデル->save()みたいなことしたいけど、ダメ?
コントローラ内で
Aモデルのデータとってきて
$this->Bモデル->save()するを完結するのががベストかな?
0099nobodyさん
2008/07/12(土) 03:59:50ID:GP2h4Bovモデルの自由度が凄く悪い気がするんだが・・・
0100nobodyさん
2008/07/12(土) 04:04:06ID:GP2h4Bov結局コントローラが厚くなってしまうんだよな
一通りコーディングが終わってからリファクタリングする形で
モデルを厚くしていかないと。
調べながらだと時間もったい気がする
0101nobodyさん
2008/07/12(土) 11:07:21ID:???コントローラが厚くなってしまうのが
問題って書いてあるな。
わざわざスライドにしてるってことは、
1.2で改善されるんやろか?
0102nobodyさん
2008/07/12(土) 13:48:03ID:???そういうコードを書くなってことだろう。
0103nobodyさん
2008/07/12(土) 19:30:01ID:???> コントローラだと何でも出来ちゃうから
> 結局コントローラが厚くなってしまうんだよな
似たような話。
関数作らなくても何でも出来ちゃうから
結局コードが長くなってしまうんだよな。
結局だ、単なる経験の問題。
経験をつめば自然といいコードが書けるようになるよ。
0104nobodyさん
2008/07/13(日) 07:35:50ID:yyUJjXK2ModelとControllerの厚さを同じくらいにまでしか
もっていけねえw
強引にモデルにもっていけなら別だけどw
0105nobodyさん
2008/07/13(日) 17:55:25ID:???基本的にモデルのvalidatesで全部チェックしていいんもんなんですか?
例えば、会員の新規登録でパスワード(password)と
パスワード確認(password2)を比較して同一かチェックするとか。
0106nobodyさん
2008/07/13(日) 18:01:54ID:???0107nobodyさん
2008/07/14(月) 02:01:47ID:???去年末に発売したばっかりなのになぜ?
0108nobodyさん
2008/07/14(月) 06:42:09ID:???フレームワーク本としては、かなりいい本。
■ このスレッドは過去ログ倉庫に格納されています