【PHP】フレームワーク CakePHP 13ホール目【v2.0】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/11/09(水) 01:05:10.60ID:???CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※他フレームワークとの比較等はスレ違いです
テンプレは>>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
前スレ
【PHP】フレームワーク CakePHP 12ホール目【笑】
http://hibari.2ch.net/test/read.cgi/php/1309505626/
0794nobodyさん
2012/03/17(土) 19:37:12.80ID:???または修正版のサイトとかあれば
0795nobodyさん
2012/03/19(月) 15:45:40.35ID:???これって結局安いの高いの
0796nobodyさん
2012/03/19(月) 16:50:34.02ID:???さくらインターネットのメールサーバにQdmail使ってSMTP AUTHでメール送信してるんだけど、
何回か(4,5回が多い)に1回だけメール送れないんだよな
QdSmtp error: No Responce SYSTEM TIME OUT line -> 603
QdSmtp error: getMessage error line -> 543
QdSmtp error: Error From setting line -> 488
QdSmtp error: Send Data Error or Auth Error line -> 415
Qdmail error: Qdmail Version 1.2.6b ,PHP Version 5.2.11
Qdmail error: OS WINNT ; PHP Version 5.2.11 ; Qdmail version 1.2.6b
php.ini status: mb_language = Japanese ; mb_internal_encoding = UTF-8 ; mb_detect_order = ASCII,JIS,UTF-8,EUC-JP,SJIS
Qdmail Status debug: 0, log: 3, errorlog: 0
Qdmail error: No send . Because SMTP mail method replied error line -> 2190
Qdmail error: Send Error line -> 2115
Qdmail error: Error happen, see upper line -> 2194
Qdmail error: Send Error line -> 2115
画面にこんなエラーが吐き出されてメール送信されない。
エラー行だって言われてるところを見てもエラー行を出力する処理しか書いてなくて
どういうエラーが起こったのか全然わからない・・・。
同じような事になった人いないかな?
0797nobodyさん
2012/03/19(月) 17:26:02.77ID:???0798nobodyさん
2012/03/19(月) 17:27:57.85ID:???すまん、一応CakePHPのコンポーネントとして使ってるし、
Cake使ってる人でメール送信する人はこれ使ってる人多そうだからここで聞いてみた
PHP質問スレで聞いたが、そこでもスレ違いだとさ・・・。
ライブラリの質問できる場所無いみたいなんだよな
0799nobodyさん
2012/03/19(月) 19:02:54.22ID:???そうじゃなくて、ライブラリ自体、公式でサポートしてるんだから
そっち行けってことっでしょ。エラーメッセージすら読めてないし。
フレームワーク以前の問題だ
0800nobodyさん
2012/03/20(火) 05:09:01.21ID:???エラーメッセージもいいかげんだし。
0802nobodyさん
2012/03/20(火) 22:24:51.38ID:???メール送信なんて今まで作っていたのあるだろ。
0803nobodyさん
2012/03/20(火) 23:14:24.46ID:???・HTMLメール
・添付ファイル
こういうの対応しようとすると結構自作でやるのはな、、、
0804nobodyさん
2012/03/21(水) 12:11:52.99ID:???フレームワーク使う前に作っていたものがあるだろ。それ使えよ。
0805nobodyさん
2012/03/21(水) 18:27:13.50ID:???0806nobodyさん
2012/03/21(水) 20:09:46.98ID:???0808nobodyさん
2012/03/21(水) 23:19:44.62ID:ZAI6cSPi'fields' => array(
'Foo.id',
'Foo.firstname'
)))));
とすると、
$form->select("Foo.bar", array($select), 0, array('empty' => null))
で
select要素の中に
<option value="Fooのid">Fooのfirstnameの中身</option>
というのができるんですが、
これを
<option value="Fooのid">Fooのsecondnameの中身 Fooのfirstnameの中身</option>
としたいんですが、find('list')は一対でしか使えないんでしょうか?
やり方をご教示いただけたら幸いです
0809808
2012/03/21(水) 23:27:53.96ID:ZAI6cSPiallで読んで、
foreach ($select as $value) {
$talent_data[$value['Foo']['id']] = $value['Foo']['secondname'] . ' ' . $value['Foo']['firstname'];
}
$this->set('select', $select);
でlistで作ったoption群と同じ形式のリストデータが生成されました
0810nobodyさん
2012/03/22(木) 00:13:00.01ID:???urlが空でもよくて、入っていれば正しいURLか判定する、という風にするやり方がありましたらお教えください
0811nobodyさん
2012/03/22(木) 00:20:23.77ID:???0814nobodyさん
2012/03/22(木) 10:58:28.03ID:???煽る意味がわからん。他人のライブラリは使えないと言い、
自分でも自作できないとかワガママすぎるだろ。
0816nobodyさん
2012/03/23(金) 00:01:31.13ID:???自分でコンポーネントやヘルパー作れるようになってるんだから。
0817nobodyさん
2012/03/23(金) 10:24:37.19ID:???0818nobodyさん
2012/03/23(金) 11:50:45.97ID:???0819nobodyさん
2012/03/23(金) 13:36:50.00ID:???いきなりフレームワーク使い出したというのか?
大体は参考書やらネットの情報やらで適当なプログラム作って、
慣れた後に効率化を求めてフレームワークを使い出すと思うんだが。
0820nobodyさん
2012/03/23(金) 13:42:01.91ID:???文字化けしたり、上手く送れなくてネットで調べながら
自分なりの「メール送信ライブラリ」を作ると思うんだが。
で、その後に添付ファイルやらHTMLメールやらを送信したくなって
qdmailのような他人が作ったライブラリを探すというのなら分かるよ。
でも、いきなり上記の部分すっ飛ばしてCake使って
「上手く動きません><」とか言われても、勉強不足以外の何者でもないだろ。
0821nobodyさん
2012/03/23(金) 16:25:24.36ID:???0822nobodyさん
2012/03/24(土) 15:01:00.43ID:oSWZUaYy0823nobodyさん
2012/03/24(土) 18:51:05.67ID:???0824nobodyさん
2012/03/25(日) 01:08:52.69ID:???$paginator->options(
array('url' => array('?id=' . $id))
);
とやったんですが、
foo/?id=100/page~1
みたいなurlになってしまってうまく動作できません
foo/page~1?id=100
となるようにしたいんですが、optionsをどう書き換えたらいいんでしょうか?
0826nobodyさん
2012/03/25(日) 23:49:03.03ID:???みたいな事をしてURLを生成しているのですが、
パラメータ部分を予め設定しておく事は出来ないのでしょうか?
0828nobodyさん
2012/03/26(月) 18:44:48.32ID:+fypSFERformタグのidが重複しちゃうけど、どうやって回避するのがスマートかな
今はform->createでid指定して別名にしてるけど、あまりスマートに思えない
0829nobodyさん
2012/03/26(月) 19:11:54.92ID:???最初は便利なのかなと思ったけどしばらくいじって思い通りにいかないから
ないものとして普通にformタグ書くようにしたら能率上がったわ
0832nobodyさん
2012/03/27(火) 01:42:43.77ID:J3nZuwJgエラーが出たフォームの上(下だっけ?)にメッセージが表示されるけど
任意の場所に表示したい場合はどうしてる?
0833nobodyさん
2012/03/27(火) 03:37:14.44ID:???0834nobodyさん
2012/03/27(火) 14:05:24.25ID:???は使えないのでしょうか?使える場合は書き方を押してください
0835nobodyさん
2012/03/27(火) 14:37:07.94ID:???0836nobodyさん
2012/03/27(火) 17:57:15.57ID:???cakephpのコミュニティで質問すれば。
http://cakephp.jp/modules/newbb/index.php
0838nobodyさん
2012/03/28(水) 22:39:25.33ID:???編集でidが2つある場合、URLが/post/edit/1/2
みたいになるけど、これってわかりづらいよね。
ピュアPHPの、edit.php?parent_id=1&id=2の方が分かりやすい気がする。
まぁ、Cakeでは/edit/parent_id:1/id:2 というURLにはなるんだけどさ・・・
0839nobodyさん
2012/03/28(水) 22:40:41.18ID:???ID=一意に表すもの
だし1つで表せないとしたらそれはIDじゃない
1つで表せるならURLに含ませる必要ない
0840nobodyさん
2012/03/28(水) 23:05:18.11ID:???別々のものに同じidが割り振られているのはおかしいが、
ひとつのものに二つ以上のidが振られているのは問題なくね?
0841nobodyさん
2012/03/28(水) 23:10:52.27ID:???問題ないけど、2つ持たせる意味がわからないし、
仮に持たせたとしてもそれをURLに含ませる意味もわからない
0842nobodyさん
2012/03/28(水) 23:15:51.51ID:???管理画面があったとして、
ユーザID・1が投稿したお知らせのID2を見たいとする。
ピュアPHPなら、edit.php?user_id=1&id=2だよな?
Cakeなら/edit/1/2か/edit/user_id:1/id:2だな。
セッションに含めて持ち回る方法もあるけど、
毎回セッションに入れるのはおかしくないか?って思うからさ。
0843nobodyさん
2012/03/28(水) 23:24:56.61ID:???じゃだめなの?
0844nobodyさん
2012/03/28(水) 23:32:10.02ID:???Cakeの書き方で言えば、
/news/add/1 この1はuser_idの1
/news/edit/2 この2はidの2
URLを見ただけでは混乱する
0845nobodyさん
2012/03/28(水) 23:46:26.83ID:???0846nobodyさん
2012/03/28(水) 23:58:08.70ID:???0847nobodyさん
2012/03/28(水) 23:59:20.33ID:???ほんとに?自分だけで分かるからOKって考え方なの?
ちなみに、/edit/1/2みたいな書き方はBaserCMSでもやってた
0848nobodyさん
2012/03/29(木) 00:03:50.49ID:???Router::url('/news/edit/' . $data['Newsr']['userid'] . '/' . $data['News']['id'])
になるわけだし。単なるURL上での事ならこだわる必要ないかな。
外部に公開するわけでもないし。
0851nobodyさん
2012/03/29(木) 00:19:24.06ID:???URLでなんのページかわかりやすくしようというのは、ユーザビリティの面からも正しい考え方だけど
この件に関しては>>844の書き方で充分わかりやすいといえる範疇だと思う
0852nobodyさん
2012/03/29(木) 04:02:59.81ID:???>Cakeなら/edit/1/2か/edit/user_id:1/id:2だな。
誰がこんなこと決めたの?
Cakeだって/edit?id=1&id=2ってやるだろ。
0853nobodyさん
2012/03/29(木) 10:57:51.78ID:???0854nobodyさん
2012/03/29(木) 22:50:57.56ID:???0855nobodyさん
2012/03/29(木) 23:14:23.59ID:???usernameなら/news/tanaka_ichiro/123みたいな感じで含めてもいいと思うけど
どうしてもuser_idもidも含めたいのならnamedパラメータ使って/news/user_id:1/id:2とかにする
0856nobodyさん
2012/04/01(日) 00:45:58.67ID:OiSFrCKx1.x系の場合コントローラに
function beforeFilter(){
//携帯なら
if($this->Ktai->is_ktai()){
Configure::write('App.encoding', 'SJIS');
$this->layout = "mobile_layout"; //charset=shift_jis"
}else{
って書けばブラウザのエンコードが既存の「UTF-8」から「SJIS」に切り替わるのに2.x系だと「UTF-8」のまんまだ。。。
かなり嵌ってるんだけど分かる人いるかな?
てか俺の環境がおかしいのかな??
0857nobodyさん
2012/04/01(日) 02:38:57.47ID:???設定したことないから知らないが
ヘッダーはutf8とsjisどっちなの?
0858nobodyさん
2012/04/01(日) 03:16:24.89ID:OiSFrCKxPCと携帯でエンコードを分岐したくて
PC -> UTF-8 携帯 -> shift_jis
core.php自体に記述しているのは
Configure::write('App.encoding', 'UTF-8');
なんだけど、携帯のページを表示するときは
beforeFilterでConfigure::write('App.encoding', 'SJIS'); に変更してます
cakephp1.3だとこの設定でブラウザのエンコードはshift_jisに変更されるんだけど
2.x系だとUTF-8のまま。。。
core.php自体をConfigure::write('App.encoding', 'UTF-8');に書き換えると
ブラウザのエンコードはshift_jisに代わるんだけどcore.phpだと分岐処理書けないから困っています。
2.x系だと別の処理が必要なのかな?
0859nobodyさん
2012/04/01(日) 03:18:29.30ID:OiSFrCKx>core.php自体をConfigure::write('App.encoding', 'UTF-8');に書き換えると
上記は
Configure::write('App.encoding', 'SJIS');の間違いです。
誤植すいません。。。
0860nobodyさん
2012/04/01(日) 17:58:24.58ID:???ケータイ対応したいならこういう感じに書いたら?
http://webengineerlife.com/2012/02/08/cakephp-pc-mobile/
0861nobodyさん
2012/04/02(月) 00:51:25.23ID:ZyijX88yありがとう
ちょっと試してみます。
携帯ライブラリとか使って複雑になってるのも原因の1つかもです。。。
0862nobodyさん
2012/04/03(火) 18:18:51.92ID:???そしてhavingってめちゃくちゃ便利だな。
これのお陰でDBの設計が楽になった。
0863nobodyさん
2012/04/04(水) 18:16:19.49ID:???表示(コントローラからset)の場合は、個別でサニタイズしなきゃいけないんだな
この点忘れてた・・・
0864nobodyさん
2012/04/05(木) 00:28:36.65ID:???ローカルのxampp環境でmodelがbake出来ないんですけど。。
cliのphpが「問題が発生したため・・・」になる
0865nobodyさん
2012/04/05(木) 23:35:57.76ID:???テーブルFoosのflagがonのものだけ取り出したいとき、
'conditions' => array(
'Foo.flag' => 'on'
),
と書いてできたんですが、
Foosのflagがonでかつ、
Foosのlawと同じ値のBarsテーブルのidの、deleteがoffのもの、というのを条件にしたい場合どう書けばいいでしょうか?
具体的には、
Foosのテーブルには商品リスト、Barsには業者データがあり、
取り扱っている商品、でかつ、倒産していない業者、の商品リストだけ取り出したいのです
よろしくお願いします
0866nobodyさん
2012/04/06(金) 01:33:16.23ID:???面倒なのでレンタルサーバにリモートプロジェクトとしてEclipseでバンドして
作業してるんですが、こういった開発手法ってNGでしょうか?
0867nobodyさん
2012/04/06(金) 11:00:58.23ID:???0868nobodyさん
2012/04/06(金) 11:22:58.85ID:???ローカルとサーバで2度設定をする手間を考えるとやはり
直接サーバ上でコードをいじった方が効率が良いと思うんだよね。
0870nobodyさん
2012/04/07(土) 00:51:33.09ID:4OZyxrY6さくらインターネットに設定しようと思っているのですがどうしてもうまくいきません。
http://mori.moripower.jp/eqwip/cakephp/370.html
どの部分でエラーが起きているか追いかけてみたところ
/home/user_name/www/app1/index.php
において、下記判定処理でインクルードに失敗していました。
if (!include(CAKE_CORE_INCLUDE_PATH . DS . 'Cake' . DS . 'bootstrap.php')) {
bootstrap.php自体のパスは下記が正の筈なので
直接(べた)書きで試してみましたがやはりダメでした。
(bootstrap.phpの権限を 755に設定してもダメ)
/home/user_name/cake/lib/Cake/bootstrap.php
どなたか同じ様な体験をされた方はいませんでしょうか?
0871nobodyさん
2012/04/07(土) 01:04:14.05ID:ET0rgidW0873nobodyさん
2012/04/07(土) 01:52:28.91ID:???>>870
に記載のURL通りに指定しております。
ちなみに bootstrap.php の中では定数等を定義しているだけの様なのですが
このファイルの読込は、CakePHPの実行には必須なのでしょうか?
また、さくらインターネットにおいて、最新のCakePHPの導入が出来る様に
解説したサイトをご存じでしたらお教えください。
どうも私の方でぐぐってヒットするサイトは
2・3年前の古い物ばかりで最新のCakePHPには即していない様です。
0874nobodyさん
2012/04/07(土) 09:38:19.35ID:PHPJ9271>bootstrap.phpは必須か?
bootstrapは、起動時の設定をまとめたりしてるもんなんで必須なはず
おまいさんのスキルが見えないので余計なアドバイスかもしれないがとりあえず、CAKE_CORE_INCLUDE_PATHの内容を調べてみてどうよ?
0876nobodyさん
2012/04/07(土) 11:21:45.79ID:???ぬかったわ。。。
0877nobodyさん
2012/04/07(土) 12:05:32.12ID:???定義された内容でもって直接includeしたのですが
それでもダメでした。
もうちょっといろいろと試してみます。
0878nobodyさん
2012/04/07(土) 12:43:18.13ID:???CakePHP って途中で開発終了の可能性は他のFWと比べて高いですか?低いですか?
0879nobodyさん
2012/04/07(土) 12:54:05.32ID:???1つ言えることは、ZFに比べたら確実に高いということぐらい。。
0880nobodyさん
2012/04/07(土) 13:09:04.61ID:???終了してしまったら学習コストの無駄になるのを恐れている。
やっぱしZFの方が無難かな?
0881nobodyさん
2012/04/07(土) 13:23:49.88ID:???0882nobodyさん
2012/04/07(土) 14:05:56.13ID:???自分の脳みそのしわを増やすのにコストで考えるのはわからんw
浅く広くでもどれでも触って使えるようになっとけばいいよ
0883nobodyさん
2012/04/07(土) 16:48:09.15ID:???0884nobodyさん
2012/04/07(土) 18:01:43.94ID:???$this->dataを一括でサニタイズする処理をするか、
確認ページのビューで<?php echo h($this->data['Post']['name'])?>
みたいにするかどちらかだと思っているのですが、
他に良い方法や考え方はありますでしょうか?
0885nobodyさん
2012/04/07(土) 18:21:39.17ID:???0886nobodyさん
2012/04/07(土) 23:59:10.64ID:???0887nobodyさん
2012/04/08(日) 10:36:25.86ID:4ALRLsfwうぉ!自分で書いてて気づかなかった。IDの仕組み分からんからこの書き込みIDどうなるか分からん。。。
>>884
ビューでエスケイプ。責任をしっかり分けておかないと後で後悔する
0888nobodyさん
2012/04/09(月) 01:52:30.87ID:???さくらじゃなくてxreaとかcoreserverとかの設置方法見たら?
/home/username/cakephp
/home/username/www
という感じに分けて、コアファイルをパブリックに置かないようにするのは一緒だよ
xreaだと
/virtual/username/cakephp
/virtual/username/public_html
とかになるけど
0889nobodyさん
2012/04/09(月) 11:26:19.21ID:gWXPCP/Cローカル(mac)の環境ではファイル名を小文字のみ(example.php)にしても読み込まれるのですが、
サーバー(centos)では一文字目を大文字(Example.php)にしないと読み込まれません
最新のCakephpはモデルのファイル名が大文字で始まるようなのですが
ローカル環境では小文字でも動いています
これはapacheの設定かphpの設定かosの設定なのでしょうか!?
0890nobodyさん
2012/04/09(月) 12:26:26.44ID:???0891nobodyさん
2012/04/09(月) 13:37:22.79ID:???マルチドメインにて設定したパスに、アクセスしてみたところ
一応CakeFW自体は正常に動作している様に見受けられるのですが
(CakePHP:the rapid development php framework が表示されました。)
/home/{user_name}/www/multi_domain_directory
下記CSSがあたっていません。
<link rel="stylesheet" type="text/css" href="/css/cake.generic.css" />
ソースを開きその中のCSSの読込をクリックすると
本来は app/webroot/css/cake.generiuc.css
が認識されないといけないハズなのですが webroot/css が認識されないです。
どうすればCSSが正常に認識される様になりますでしょうか?
※一応CakeFWを追いかけると lib/Cake/view/Helper/HtmlHelper.php / function css()
にてロードをやっている様なのですが
こちらは、FW本体なので手は入れたく無いです。
■ このスレッドは過去ログ倉庫に格納されています