トップページphp
985コメント290KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/12/19(金) 15:52:19ID:ylogT+7c
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
cookbook(マニュアル)
http://book.cakephp.org/ja
the Bakery
http://bakery.cakephp.org/

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


■過去スレ
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【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/
0619nobodyさん2009/02/07(土) 19:28:59ID:???
>>618
明確な答えをありがとう。
フォームのバリデーションエラー表示も少してこずりましたが試して見ます。
saveAllをネット上の情報で試したんですが、エラー表示がきちんと出なかったんですよね。
フォームヘルパーの指定方法の問題じゃないかと思っていましたが。

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

ちょっと前見たときはsaveAllの説明なかった気がするのは気のせいかな・・。
履歴を見ると気のせいじゃない気もする、今月に入って誰か訳してくれたんだねありがとう訳者さん。
0620nobodyさん2009/02/07(土) 23:38:50ID: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;
}

こんな感じとか?
0621nobodyさん2009/02/07(土) 23:48:49ID:???
http://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
0622nobodyさん2009/02/08(日) 00:16:52ID:XBcxfvCP
TRPGオタしか喜ばなそうな上記説明を熟読すれば、
「マニュアル/開発例/ACL〜」のサンプルで
id:1のUserのみがuser_id:1のPostを編集できるようにできるんですか?
0623nobodyさん2009/02/08(日) 01:12:57ID:???
>>622
「TRPGオタしか喜ばなそうな上記説明を熟読すれば、」ってことは、
ちゃんと読んでないのか。
マニュアルくらい読めよw

それとも読めないくらい馬鹿なの?ww
もしそうだったらごめんねwww
0624nobodyさん2009/02/08(日) 02:18:10ID:???
>>622
マニュアルの更なる理解のために「指輪物語」を読破するんだw
0625nobodyさん2009/02/08(日) 02:30:48ID:???
formヘルパーで、複数のテキスト入力boxを
1行に並べるのって、どうするの?
0626nobodyさん2009/02/08(日) 04:45:10ID:???
>>625
自分でフォームを書く
0627nobodyさん2009/02/08(日) 04:56:26ID:???
>>626
えっ、マジ?
0628nobodyさん2009/02/08(日) 11:29:47ID:XBcxfvCP
いや、読んだ上で言ってるんだが。。。

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

なんか、ここはレベル低いなぁ。
0629nobodyさん2009/02/08(日) 11:49:57ID:???
その処理は、自分で書くんだよ。
自分が投稿したやつだけ編集できるって。
当たり前だろ。

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

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

レベルが低いのはお前。
0630nobodyさん2009/02/08(日) 12:03:59ID:???
>>625
tableタグ使うと$form->text()を1行に並べること出来るよ。
後は、app/webroot/css/cake.generic.cssの内容を自分の好みに編集するだな。
(でも、なんでCakePHP1.2のdefaultのcssはこんなに変態なのだろ?)
0631nobodyさん2009/02/08(日) 12:10:49ID:???
'div' => 'false' とかで横に並べられた気もするが・・・

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

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

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

isAuthorized()やbeforeFilter()に書くのか?
0633nobodyさん2009/02/08(日) 12:21:23ID:???
チケットを投げるんだ。

Summary: "cake.generic.css" looks like hentai
Type: RFC
0634nobodyさん2009/02/08(日) 12:23:13ID:???
>>632
ご飯から食べるか味噌汁から食べるか。
好きにしろw
0635nobodyさん2009/02/08(日) 13:06:23ID:???
>>631
<?php
echo $form->text('hoge0', array('div' => 'false'));
echo $form->text('hoge1', array('div' => 'false'));
echo $form->text('hoge2', array('div' => 'false'));
?>
これでは縦に3つ並んでしまったが、こんな書き方ではないのかな??
0636nobodyさん2009/02/08(日) 13:29:45ID:???
>>628
レベルが低いのはお前の頭
06376222009/02/08(日) 13:32:48ID:ByGZ6/FB
>>632
教えてやるから土下座して「自分の頭の程度が悪うございました」とPCの前で言え

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

関係の定義とチェック関数については>>622に書かれてる
06386212009/02/08(日) 13:33:26ID:ByGZ6/FB
622じゃなくて621だった
0639nobodyさん2009/02/08(日) 14:40:18ID:???
CakePHPで掲示板作れます?
0640nobodyさん2009/02/08(日) 14:43:20ID:???
>>639
お前は何を言っているんだ?
0641nobodyさん2009/02/08(日) 14:45:17ID:???
>>640
質問しているのです。
0642nobodyさん2009/02/08(日) 15:03:43ID:???
>>641
はいはい、ソーデスネ。
次のネタが思いつかないので、マジレスする。
作れます。
以上。

0643nobodyさん2009/02/08(日) 15:04:30ID:???
>>639
ベタのPHPで作るより、短時間で、高機能(Ajaxなど)な掲示板が作れますよ。
がんばってください。
0644nobodyさん2009/02/08(日) 16:07:39ID:???
>>642-643
がんばります!
0645nobodyさん2009/02/08(日) 16:20:11ID:???
自分の頭の程度が悪うございました
0646nobodyさん2009/02/08(日) 16:26:13ID:SHT1by4H
バリデーションで、一つのフィールドに対して、
複数のルールを設定していた場合に、
一つのエラーが検知した場合以降の
バリデーションはおこわないことは、出来ますか?

例えば、期間の入力があった場合、入力値が正しく
なかった場合、その後の妥当な期間であるかどうかの
チェックはいらないのですが。
0647nobodyさん2009/02/08(日) 16:41:27ID:???
>>644
これから始めるなら、この本お勧め。
「CakePHP徹底入門」 CakePHP1.2で説明してあるから、とても楽に入門できた。
ttp://www.amazon.co.jp/CakePHP徹底入門-イージーゲート/dp/479811717X
↓このページも入門者にお勧めかな。
ttp://kuri6005.sakura.ne.jp/cake/wiki/
0648nobodyさん2009/02/08(日) 16:53:37ID:???
>>646
http://book.cakephp.org/ja/view/133/
'last' => true
0649nobodyさん2009/02/08(日) 17:20:04ID:???
>>648
ありがとうございます。
すみません。
しっかりと説明されていますね。
もっとちゃんと読まないといけませんね。
0650nobodyさん2009/02/08(日) 17:46:55ID: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を
自動生成してるんでしょうか?
だとしたらどうやったらうまく解決できるんでしょうか?
0651nobodyさん2009/02/08(日) 18:01:22ID:srWubjja
すんません、Router::Connectをコメントにしたらちゃんとうごきました。
ということは$form->createではこれをみてURLを生成してるんですね。
携帯、PCの両用サイト作ってる人はどうやって解決してるんでしょうか?
0652nobodyさん2009/02/08(日) 21:16:52ID:???
>>647
ご丁寧にありがとうございます。
明日の夜にでも本屋に行ってこようと思います!
0653nobodyさん2009/02/08(日) 21:59:25ID:???
http://cakephp.jp/
0654nobodyさん2009/02/08(日) 22:39:55ID:???
>>635
うちもそれ試した。3行になっちゃった。
やっぱ、>626の言う通り、自分で
フォームを書かないといけないのか・・・マンドクセ

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

できれば、年号(MTSH)が付いてると西暦に直して
欲しいんだけど・・・(そこまで求めるのは無理か。)
0655nobodyさん2009/02/08(日) 22:49:40ID:???
素のhtmlのタグを、cake流に変換するようなフィルタとかあればいいなー
0656nobodyさん2009/02/08(日) 23:14:43ID:???
>>654
'div' => false にして、出てくるフォームが改行されるのは、FormHelperの問題と違う。
CSSでそう指定してあるから改行される。

input {
clear: both;
}

みたいな感じで。

いっぺん、読み込んでるCSSファイルを移動するなりして、読み込めないようにしてみろ。
0657nobodyさん2009/02/09(月) 00:07:57ID:???
>>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>
0658nobodyさん2009/02/09(月) 00:13:00ID:???
何で変態CSSのために
無駄な労力使ってるんだw
0659nobodyさん2009/02/09(月) 00:18:41ID:???
>>658
暇で他にやる事もないので、チョットやってみただけ。
0660nobodyさん2009/02/09(月) 01:19:15ID:???
てことはCSSを、YUIとかのリセットに変えればいいだけか
0661nobodyさん2009/02/09(月) 02:53:29ID:???
>>659
じゃあ僕のサイト作るの手伝ってくれません?
0662nobodyさん2009/02/09(月) 19:48:34ID:???
>>661
私でよければ喜んで。
(1人月どれくらをお考えで、何人月位の作業でしょうか?)
0663nobodyさん2009/02/09(月) 20:24:53ID:???
え、金?
0664nobodyさん2009/02/09(月) 20:38:10ID:???
>>663
今後、食べて行くのにも不安があります。よろしくお願いします。
0665nobodyさん2009/02/09(月) 20:53:38ID:???
いくらほしいの?
0666nobodyさん2009/02/09(月) 20:59:41ID:???
一般的なマッチング系サイトだけど
0667nobodyさん2009/02/09(月) 21:42:25ID:???
90万
0668nobodyさん2009/02/09(月) 21:47:42ID:???
無理。15万以内
0669nobodyさん2009/02/09(月) 21:50:22ID:???
必要経費別で50万円・人月(600万円/年)でやるよ。
0670nobodyさん2009/02/09(月) 21:52:08ID:???
90とか、50とか正気か?
0671nobodyさん2009/02/09(月) 21:54:10ID:???
まあ内容次第かな
完璧に一般的な機能のみしかも小機能だったら30万くらいでも作るが
0672nobodyさん2009/02/09(月) 22:00:02ID:???
だから15以内って言ってるだろ
ttp://www.with9.com/
このレベル
0673nobodyさん2009/02/09(月) 22:04:10ID:???
素材制作別でデザイン・システム込みで25万以下じゃやっても損にしかならないな
それ以下で請け負う奴もたぶん居ないし
0674nobodyさん2009/02/09(月) 22:04:53ID:???
システムだけなら15以下ってありじゃね?
0675nobodyさん2009/02/09(月) 22:07:07ID:???
システムだけでも居ないと思うよ
売り手市場のIT業界でそんなの15以下で受ける奴は学生で居るかどうかってところ

0676nobodyさん2009/02/09(月) 22:14:58ID:???
PHPでもそんなに相場って高いの?
0677nobodyさん2009/02/09(月) 22:18:20ID:???
人月50万としても、CakePHPで0.3人月で完成すれば15万だ。
0678nobodyさん2009/02/09(月) 22:24:51ID:???
>>675
お前は何を言ってんだ

ここ見てみろ
ttp://www.getafreelancer.com/projects/PHP/Flickr-clone.html
0679nobodyさん2009/02/09(月) 22:25:37ID:???
じゃあ10以下でやってるオイラは…
0680nobodyさん2009/02/09(月) 22:28:45ID:???
高額で請け負ってるやつに限って、ソースも汚かったりするんだよね
メンテに人件費がかかりすぎてるのかね
0681nobodyさん2009/02/09(月) 22:30:45ID:???
Flickr cloneが3万円だって?
cloneインストールするだけじゃないだろうなw
0682nobodyさん2009/02/09(月) 22:54:07ID:???
>>668
スキルを磨かせてもらえ、今後のチャンスを与えてくれる様な仕事なら
ゼロ円でやらせてもらいます。よろしくお願いします。
0683nobodyさん2009/02/09(月) 22:55:04ID:???
1万円あげるから作らさせて下さい
よろしくお願いします。
06846612009/02/09(月) 23:14:55ID:???
金が絡むとは・・

ボランティアで^^
0685nobodyさん2009/02/09(月) 23:30:16ID:???
mysql のテーブルが2つ用意してあって(稼動用、テスト用)
cakephp の設置は1つのままで、稼動用、テスト用のデータベースへの接続を
ファイルをかきかえる事なく自由にやる事ってなんかいい方法ないですかね?

ブラウザであるアドレスにアクセスすると、データベースをこっちみてくれる、とか
そんなんできないですかね?

ページが探せないんですけど、なんかすると debug の値を変更してアクセスできる
みたいな tips をどっかで見た記憶があるんですけど、そういう勢いで…。
0686nobodyさん2009/02/09(月) 23:34:21ID:???
稼働用とテスト用で二つファイルを置けばいいだけじゃねーか
0687nobodyさん2009/02/09(月) 23:40:42ID:???
>>686
どういう意味?

2つファイルを置いてリネームして使えってこと??

そうじゃなくて、通常にアクセスすると稼動用DB を見にいってるけど
なんか URL などにある細工をするとテスト用DB を見にいく、
みたいに設定ファイルをいじる事なくやりたいんすが。
0688nobodyさん2009/02/09(月) 23:54:57ID:???
>>687
$useDbConfig でググれば、ヒントがいろいろ出てくるはず。
0689nobodyさん2009/02/10(火) 01:05:58ID:???
/test/app

/unyo/app
って二カ所に同じものをコピーしてDBの設定だけ変えときゃいいんじゃねーの?
どうせテスト用のは一時的にソースいじったりするんだべ?
だったら運用とテストは別ディレクトリに分けといた方がいいんでないかい?
0690nobodyさん2009/02/10(火) 01:08:41ID:???
俺も>>689の方法に1票。
0691nobodyさん2009/02/10(火) 01:53:54ID:???
/test_unyo/app
で よくね?
0692nobodyさん2009/02/10(火) 02:21:12ID:???
動かねえなあと思ってたら単にモデルのファイル名を間違っていただけと
知った時は割とショック。
0693nobodyさん2009/02/10(火) 08:56:22ID:???
CakePHPの変態?CSSと心中するつもりは無いので、CSSを書き替えようと思うんだけど。
app/webroot/css/cake.generic.css
を直接書き替えればいいのかな?

何かお勧めの設定ありますか?
0694nobodyさん2009/02/10(火) 09:58:52ID:???
>>685
ttp://d.hatena.ne.jp/charly24/20070512/1178956046
debugの値じゃないけど、これも、設定変更が不要なパターンで使い勝手が良い
>>689のように別ディレクトリでも同じファイルでよいから、ミスが少ない
0695nobodyさん2009/02/10(火) 12:33:26ID:???
bakeで生成されるviewが編隊CSS前提になっているからなぁ。
うまく作らないとviewがぐちゃぐちゃになる。
0696nobodyさん2009/02/10(火) 18:10:04ID:???
>>689
俺そんなかんじで、appを分けてテスト用の方で機能追加したりしてたんだけど、
機能追加分がやっとできたー。と思って、本番用のappからテスト用のappにコピーしちゃった。
そして気づかずに速攻でリモート鯖にアップしちゃった。
機能追加した分が全部パーじゃねえか!・・・・

まあ俺用サイトの管理画面の手直しだからまだ救われるけど、
バージョン管理とか導入した方がいいのかもしれんなあ。とほほ。
0697nobodyさん2009/02/10(火) 18:21:35ID:???
SVNも使ってないのか
0698nobodyさん2009/02/10(火) 20:35:04ID:???
テスト用ディレクトリでコミットして
本番用はチェックアウトするだけってするのが
ミスもなくなってらくちんですよね
0699nobodyさん2009/02/10(火) 22:01:09ID:???
1.2対応decorat.phpマダァ-? (・∀・ )っ/凵⌒☆チンチン―
0700nobodyさん2009/02/10(火) 22:06:53ID:???
>>697
SVNって便利なの?どうやって使うの?
自動で差分を管理してくれたら、楽だろうなとは思う。

>>699
./cake bake all
が便利だったので、もういいか、って思う。
でも、bake allって焼き直す時に確認が多すぎてウンザリ。
0701nobodyさん2009/02/10(火) 22:09:54ID:???
>>684  >>661
今後、食っていけるかどうか不安で一杯なのに
「ボランティア」なんて心の余裕はない。勘弁してください。
0702nobodyさん2009/02/10(火) 22:46:53ID:???
>>700
そんなのほかのフレームワークからしたらしょぼすぎる自動生成だけどな
0703nobodyさん2009/02/10(火) 23:15:30ID:???
>>700
自動でバージョン間の差分出すとか、
当たり前というか出来なかったらバージョン管理ツールと呼べないw

個人で使うならSVNがお勧めだな
0704nobodyさん2009/02/10(火) 23:33:37ID:???
まだ全部読んでないけど。
良さげなんで、メモ
http://jeffhowden.com/code/css/forms/
0705nobodyさん2009/02/11(水) 13:25:54ID:???
http://cakephp.seesaa.net/article/96046006.html
0706nobodyさん2009/02/12(木) 03:37:49ID:???
てか、開発中のアドミン画面とか最初のScaffold段階ならまだしも
外に見せる部分にもcake.genericとか使っちゃうの?
0707nobodyさん2009/02/12(木) 07:26:53ID:???
>>706
外に見せるもののcssは独自設定になるね。cake.genericの設定は2割位しか
残らないかな。
0708nobodyさん2009/02/12(木) 12:04:09ID:???
http://cakephp.jp/
乙!
0709nobodyさん2009/02/12(木) 12:34:16ID:???
`Cakeは命の恩人` w...
0710nobodyさん2009/02/12(木) 16:27:26ID:???
まだ英語で読んだほうがわかりやすいわw
0711nobodyさん2009/02/12(木) 16:41:01ID:???
年月日を2つのフィールドで入力させてくれる
formヘルパーの拡張、誰か作ってくれ。いや、ください。
というか、formヘルパーの拡張って、どこですんの?
0712nobodyさん2009/02/12(木) 16:42:20ID:???
>711の訂正
2つのフィールドじゃない。3つのフィールドだ。
0713nobodyさん2009/02/12(木) 16:49:22ID:???
>>711-712
何をどう拡張して欲しいか、まったく分からんのだが
selectじゃなくてinputってこと?
独自のHelper作ればよろしいがな
0714nobodyさん2009/02/12(木) 19:58:05ID:???
AuthCompornentを使ったログインで、
ログイン画面を、管理者用と一般用に分けたくなりました。

そこで、管理者用にmodelが空のkanris_controllerを作って
$this->Auth->loginAction = '/kanris/login';
として管理者用ログインのviewを表示させたのですが、
うまくログインできません。

方法として間違ってるのでしょうか?
なにかヒントがあれば、教えて頂けませんでしょうか。
0715nobodyさん2009/02/12(木) 20:41:26ID:???
マニュアルを読め
0716nobodyさん2009/02/12(木) 20:41:53ID:???
>>714
viewだけ分ければいいでしょ。
0717nobodyさん2009/02/13(金) 02:26:21ID:???
BirthDay←→birth_day
この変換してくれる関数とか、ありませんか?
0718nobodyさん2009/02/13(金) 03:05:24ID:???
>>717
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
■ このスレッドは過去ログ倉庫に格納されています