【PHP】フレームワーク CakePHP 11ホール目【v1.3】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/02/16(水) 21:52:35ID:zCTGjUMqCakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※sage推奨
※質問時もsageること
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0270nobodyさん
2011/03/03(木) 02:42:06.82ID:???それなりに役には立ってるけど、不満点もそれなりにあるからなぁ。
0271nobodyさん
2011/03/03(木) 03:02:42.33ID:???0272nobodyさん
2011/03/03(木) 04:10:32.91ID:???0273nobodyさん
2011/03/03(木) 07:15:43.65ID:???cake/libs/validaton.phpのminLength, maxLengthのメンバ関数でmb_strlen使ってるんだけど
これって日本語でも対応してますってこと?
0275nobodyさん
2011/03/03(木) 16:09:06.49ID:???function maxLengthJP($wordvalue, $length) {
$value = array_shift($wordvalue);
return (mb_strlen($value, mb_detect_encoding($value)) <= $length);
}
とか書いてたんだけど
そういうのやらなくて良くなったってことかな?
0276nobodyさん
2011/03/03(木) 17:57:07.62ID:P58hQK5Oセッションがタイムアウトしたのと、
ログアウト時に明示的にdestroyしたのって区別つかないのかな?
expireが取得できるメソッドでもあればいいんだけども
0277nobodyさん
2011/03/04(金) 02:57:20.01ID:8qRY678r大幅なデザイン変更あったときは
デザイナがhtmlファイル作って、PGがテンプレに移して・・・
って作業をやり直しになるの?
あくまでデザインの変更なんだからPGは一切作業無しで・・・
という風にできる方法はないのかな?
0278nobodyさん
2011/03/04(金) 04:38:20.99ID:???お互いにきっちり話し合ってデザイナー向けにマニュアルでも作るしかないんじゃないすかね。
でも実際大変じゃないの?
例えば入力フォームのページ1個作るにしたって
デザイナーにform helperの使い方を調べてもらって・・・なんてお互いに不安にしかならないもんなw
0279nobodyさん
2011/03/04(金) 14:10:42.75ID:???0280nobodyさん
2011/03/04(金) 14:32:27.79ID:???0281nobodyさん
2011/03/04(金) 18:29:37.51ID:???0282nobodyさん
2011/03/04(金) 19:12:13.54ID:???特にFormHelper。
Smartyのヘルパーがどういうものか知らないけど、
置き換えられるものじゃぁないと思うよ。
FormHelperを使わないことで発生する問題や制約を飲み込めるなら、
使ったら良いんじゃないかな。
Smartyの囲い文字もctpのphpタグも、変わらないと思うけどね。
0283nobodyさん
2011/03/04(金) 20:47:18.49ID:???以下のようにしたけど、表示できませんでした。
※コントローラ
function index(){
$images = $this->Image->find('all');
$this->set('images',$images);
}
※ビュー
foreach ($images as $image) {
$photo = base64_encode($image['Image']['contents']);
echo "<img src='data:image/jpg;base64,${photo}' />";
}
ちなみに、コントローラ側からechoするとちゃんと表示されます。
参考にした記事
http://matya.dyndns.info/diary/?p=283
0284nobodyさん
2011/03/04(金) 20:48:58.33ID:???FormHelperは必須だな。特にCMS系システム開発には。
でも、FormHelperを開発するのってそれほど難しくないよね。
みんなもCake使う前は、自作のFormHelper作ってたんじゃないか?
だから、どうしてもSmartyをビューで使いたい場合は、
Smarty用のFormHelperを作っても良いと思う。Cakeの書式に合わせて。
0285nobodyさん
2011/03/04(金) 21:34:56.65ID:6a/ByBcS/test/にアクセスしても、自分が作ったテストクラスが表示されません
解決方法知っておられたら教えてください。
0286nobodyさん
2011/03/04(金) 21:41:22.39ID:???0287nobodyさん
2011/03/05(土) 01:09:29.31ID:???まともに動かない
0288nobodyさん
2011/03/05(土) 01:14:50.42ID:???フォーム処理のやりとりに関しては、普通に出来てるけど。
0289nobodyさん
2011/03/05(土) 01:38:37.36ID:???だから最初はフォーム書くだけなのにphpなのめんどくさいって思ってた。
まぁ正直今でもちょっと思ってる。
でもちゃんと使ってるよ。
0290nobodyさん
2011/03/05(土) 14:11:52.90ID:???0291nobodyさん
2011/03/05(土) 14:48:19.68ID:???inputならわかるけど、selectやcheckbox(などの選択肢)はどうしてたの?
PHP使わないと逆に難しいと思うんだが。
0292nobodyさん
2011/03/05(土) 23:54:54.72ID:???もっと良いフレームワークあるでしょ
0294nobodyさん
2011/03/06(日) 01:03:43.63ID:???0295nobodyさん
2011/03/06(日) 01:55:17.88ID:5hZ883U10297nobodyさん
2011/03/06(日) 02:15:51.79ID:???いやきっと >>292 みたいな人はcakePHPに使われるような仕事して
ストレス溜まってるんだろうなーって生暖かい目で見てるよw
よく小学校の頃、学校なんてクソ。無くなれ〜とか思ってたじゃん。それと同じだろ。
0298nobodyさん
2011/03/06(日) 02:18:28.83ID:???良いフレームワークだよ。
0299nobodyさん
2011/03/06(日) 03:09:18.50ID:???0300nobodyさん
2011/03/06(日) 04:38:39.78ID:???まったく興味がわかない。
0301nobodyさん
2011/03/06(日) 11:18:22.21ID:???0302nobodyさん
2011/03/06(日) 12:25:25.49ID:???V = ビュー
A = アクション?
C = コントローラー
0303nobodyさん
2011/03/06(日) 14:37:58.37ID:???0304nobodyさん
2011/03/06(日) 16:00:47.25ID:PLgQNz0Sちょっとしたデザイン変更でいちいちシステム屋が出ていくのもねぇ
0305nobodyさん
2011/03/06(日) 16:31:51.55ID:???0306nobodyさん
2011/03/06(日) 16:44:51.04ID:???0307nobodyさん
2011/03/06(日) 17:01:10.08ID:???CakePHPの2.0.0はいつくらいに正式リリースされるのよ?
0308nobodyさん
2011/03/06(日) 17:14:43.69ID:???デザインとシステムの両方がhtml部分に手を入れる必要があるから、
切り分けは出来ないだろう。
無理を承知で言えば、cssはデザイナーの領域だから、
なるべくcssで頑張ってもらう。
0309nobodyさん
2011/03/06(日) 18:00:21.86ID:???で、PHPはDreamweaverで反映されるけど、プレビューはサーバがないと駄目。
だから、完全に分離できないとデザイナーが手間かかるし、
デザインを表示させる為に下手にソースから得られたら、プログラマが困る。
0310nobodyさん
2011/03/06(日) 18:01:57.60ID:???Goが出たらそのHTMLをテンプレート化するだろ。
簡単な修正の場合はCSS含めてプログラマがやるし
大幅な修正や画面追加はデザイナに任せればええやん。
0311nobodyさん
2011/03/07(月) 16:31:11.34ID:2kfcEYNxMVACってどうなんだろ
0312nobodyさん
2011/03/07(月) 16:41:54.60ID:???同じコードを書かなくても良いという目理とがあるけど、
ファイル数が増えてややこしくならないか?という懸念もある。
0313nobodyさん
2011/03/07(月) 17:52:16.77ID:???俺が扱ってる規模なら不要だな。
JAVAでも使っとけって思う。
0314nobodyさん
2011/03/07(月) 21:38:40.02ID:???0315nobodyさん
2011/03/08(火) 21:31:52.80ID:PsYppCp1どこで定義するのがベストでしょうか?
ちなみに金額と税率はDB内にあり、別テーブルに入っています。
0316nobodyさん
2011/03/08(火) 21:48:16.11ID:???0317nobodyさん
2011/03/08(火) 22:37:46.87ID:???0318nobodyさん
2011/03/08(火) 22:53:06.76ID:PsYppCp1どのモデルに書くのが良いんでしょう?
>>317
金額*税率が必要な部分で毎回コンポーネント読み込むんでしょうか?
0319nobodyさん
2011/03/08(火) 23:11:48.23ID:PsYppCp1Array
(
[Item] => Array
(
[0] => Array
(
[id] => 2
[name] => aaaa
[price] => 1000
[created] => 2011-01-01 04:41:50
[modified] => 2011-01-01 04:41:50
)
[1] => Array
(
[id] => 3
[name] => bbbb
[price] => 1300
[created] => 2011-01-01 22:17:20
[modified] => 2011-01-01 22:17:20
)
:
)
)
こんな感じで、商品DBには税抜価格が入っているんですが、
別テーブルに税率フィールドがあり、それを掛けた値を表示させたいのです。
0321nobodyさん
2011/03/08(火) 23:27:37.73ID:???$this->set('TaxConfig', $this->TaxConfig->find('first') );
#View
価格:<?php echo number_format( $data['Item']['price'] * $TaxConfig['num']); ?>
こんな感じで。
0322nobodyさん
2011/03/08(火) 23:42:55.57ID:PsYppCp1お〜。とりあえずそれで行ってみようかな?
0323nobodyさん
2011/03/09(水) 12:25:58.46ID:???jQueryを使用して、下記のようにjsヘルパーでサブミットボタンを2個並べてます。
action「jstest」は、10秒待ってレスポンスを返すだけのメソッドです。
保存1、保存2と間をおかず連続してボタンを押した際、end2のalertが表示されるのが
保存1を押してから約20秒後となります。
期待してるのは約10秒後にend1、2のalertが連続表示されることなのですが、
なにかおかしい点はありますでしょうか?
<?php e($js->submit('保存1',array(
'url'=>array('action'=>'jstest'),
'buffer'=>false,
'complete'=>'alert("end1");'
)
)); ?>
<?php e($js->submit('保存2',array(
'url'=>array('action'=>'jstest'),
'buffer'=>false,
'complete'=>'alert("end2");'
)
)); ?>
0324nobodyさん
2011/03/09(水) 12:44:59.72ID:???コンポーネントが100個ぐらいになった
0325nobodyさん
2011/03/09(水) 17:15:23.38ID:4pX38QJO0327nobodyさん
2011/03/09(水) 21:23:05.27ID:???何箇所か画像をアップロードする機能をもたせていて現状下のようになっています。
1.画像を保存する処理を書いたファイル
2.渡された変数を適切なフォーマットにして1.を呼び出すファイル
3.ユーザーが画像をアップロードする際に使うファイル
3.でフォームから画像を指定してsubmit
2.が受け取って色々いじった後1.にデータを投げて画像を保存
1.2.では文字を表示する必要は一切無いため画像を保存したら
3.にリダイレクトをかけたいのですがどのようにすればいいかわからず悩んでいます。
よろしくお願いします。
0328nobodyさん
2011/03/09(水) 22:26:17.55ID:???0329nobodyさん
2011/03/10(木) 02:46:04.73ID:???0330nobodyさん
2011/03/10(木) 13:00:58.69ID:???0331nobodyさん
2011/03/10(木) 13:20:34.19ID:???マジレスすると、何いってんのかよくわからん。
何だよファイルって。
コントローラー、ビュー、モデル、コンポーネント、ヘルパー、ビヘイビア、アクション
を使って説明を書き直してくれ。
0332nobodyさん
2011/03/10(木) 13:57:01.02ID:???0333nobodyさん
2011/03/10(木) 14:46:49.27ID:???0336nobodyさん
2011/03/11(金) 10:09:36.88ID:???scaffoldで値を入れてみようと思ったのですが、
外部キーをうまく認識してくれません。
テーブルは、次の二つを作成しました。
products
id, created, updated, name, product_type_id
product_types
id, created, updated, name
両コントロールは、以下のように作成しました。
//class ProductsController extends AppController
class ProductTypesController extends AppController
{
//public $name = 'Products';
public $name = 'ProductTypes';
public $scaffold;
}
product_types/addで任意のデータを追加した後
products/addでさらにデータ追加しようと思ったのですが、
product_type_idのセレクトボックスに選択できる値が入っておらず、
データを追加できませんでした。
products/add時にproduct_typesテーブルの内容を選択肢として表示するには
どのようにすればよろしいのでしょうか。
よろしくお願いします。
0338nobodyさん
2011/03/11(金) 10:16:22.95ID:???0339nobodyさん
2011/03/11(金) 10:17:13.31ID:???0340nobodyさん
2011/03/11(金) 11:21:00.08ID:???ありがとうございます。
モデル・ビューともに作成していませんでした。
scaffoldでは、必要ないみたいなことを読んだのですが、
違ったということでしょうか。
後で、アソシエーションを設定するモデルファイルを作成してみます。
0341nobodyさん
2011/03/11(金) 12:31:08.42ID:???(最近scaffold使ってないから記憶薄いけど)
0342nobodyさん
2011/03/11(金) 13:01:08.61ID:???気まぐれに入っていたりもする。
でもそのまま使うことはないからみんな放置してるんじゃないかな。
0343nobodyさん
2011/03/11(金) 13:12:04.29ID:???使い道がよく分からん。
0344nobodyさん
2011/03/11(金) 13:17:13.19ID:???使い方がよくわからん
0345nobodyさん
2011/03/11(金) 13:20:52.41ID:???0346nobodyさん
2011/03/11(金) 13:55:53.93ID:???コントローラとかモデルは小規模サイトだし必要ない
0347nobodyさん
2011/03/11(金) 23:09:11.08ID:34T7XTKb↑この問題が自分の環境でも起こっているんですが、
解決法などありますか?
Cookieコンポーネントを使って配列を書きこむと、一番最後の配列以外がArrayとなってデータが消えてしまいます。
Array
(
[0] => Array
[1] => Array
[2] => Array
(
[id] => 1
[ab] => 2
[cd] => 1
[ef] => 3
)
)
↑このように、同じデータを追加しているはずなのですが、末尾のデータしか残っていません。
0348nobodyさん
2011/03/11(金) 23:11:03.03ID:34T7XTKbこの記事でも同じようなこといっていますね。
「cakephp cookie 配列」などで検索すると出てきます。
0349nobodyさん
2011/03/12(土) 10:57:04.39ID:???Cookie::readの最後で
return $this->__values[$key][$names[1]];
//return Set::extract($this->__values[$key], $names[1]);
いいのかな。。
0350nobodyさん
2011/03/13(日) 23:51:06.58ID:JC24c2uV事前に何をsetしようがcreateしようが必ずtrueが帰ってくる。2日悩んだがお手上げ状態
たしけて
0352nobodyさん
2011/03/14(月) 03:25:24.81ID:???$this->Model->set($this->data);
if ($this->Model->validates()) {
$this->Model->save($this->data);
}
0353nobodyさん
2011/03/14(月) 10:38:15.65ID:3Afc8bliそのとおりやってるんだけど、どんな値を渡してもtrueが帰ってくる。
0354nobodyさん
2011/03/14(月) 17:45:24.61ID:???じゃ、文字コード疑ってみろ。モデルの。
たまにそこがShift_JISになっていて、エラーにならない時がある。
0355nobodyさん
2011/03/15(火) 11:45:26.02ID:pIi0VVUhUTF-8だったわ。
<?php
class Stock extends AppModel {
var $belongsTo = array('Item', 'Size', 'Color');
var $validate = array(
'name' => array(
'rule' => array('notEmpty'),
),
'item_id' => array(
'rule' => array('notEmpty'),
),
'size_id' => array(
'rule' => array('notEmpty'),
),
'color_id' => array(
'rule' => array('notEmpty'),
),
'quantity' => array(
'rule' => array('numeric'),
'message' => '半角数字で入力してください'
),
);
}
?>
なんだ?バリデーションのかき方間違ってるわけじゃないよな
ファイル壊れてんのかね?
0356nobodyさん
2011/03/15(火) 11:54:53.37ID:???なんでnotEmptyを配列にしてるんだw
'name' => array(
array(
'rule' => 'notEmpty'
)
)
こうだろ。もう少し勉強しろよ
0357nobodyさん
2011/03/15(火) 12:03:25.03ID:???'name' => array(
'rule' => 'notEmpty'
)
これでも動くよ。(むしろこっちが一般的かも知れない)
0358nobodyさん
2011/03/15(火) 15:15:08.89ID:???もう本体のソースにdebug()入れて目デバッグするしかないんじゃないの?
こんなところで聞くよりずっとはやいぜ。
0359nobodyさん
2011/03/15(火) 17:30:17.19ID:pIi0VVUhサンクス。
いろいろ試したが、
そのコードに、'required' => true,つけたらfalse帰ってきたわ。
'name' => array(
array(
'rule' => 'notEmpty'
)
)
↓
'name' => array(
array(
'rule' => 'notEmpty'
'required' => true,
)
)
0360nobodyさん
2011/03/15(火) 18:34:32.58ID:???冗談抜きでcookbookの例見ながらやれよ
0361nobodyさん
2011/03/15(火) 21:33:40.21ID:pIi0VVUhいや、ブックもAPIも毎日見てるよ。
何が間違ってる教えてくれ
>>369のやりかたで今のとこうまくいってるんだが
0363nobodyさん
2011/03/16(水) 00:11:30.27ID:H/WJFHhtrequiredが必要な設計が悪いんだよ。
0364nobodyさん
2011/03/16(水) 00:45:40.08ID:???だからそういう凡ミスするんだよ。開発プロセスを見直せ
0365nobodyさん
2011/03/16(水) 12:36:45.89ID:???0366nobodyさん
2011/03/16(水) 14:38:25.17ID:???0368nobodyさん
2011/03/16(水) 17:41:11.35ID:OBkWdnDA0369nobodyさん
2011/03/16(水) 19:10:01.24ID:aP3af6LXダウンロードできないんだが・・・。
さばおち?
■ このスレッドは過去ログ倉庫に格納されています