【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/
0666nobodyさん
2012/02/22(水) 01:12:36.89ID:???0667nobodyさん
2012/02/22(水) 01:34:03.12ID:???お前ら頼りなさすぎ
0668nobodyさん
2012/02/22(水) 09:23:59.33ID:???0669nobodyさん
2012/02/22(水) 10:44:07.07ID:???updateAllで、
リレーション設定をしている他モデルで使用しているテーブルのデータを
保存することはできませんか?
Bコントローラ内
$condition = array('ModelA.neko' => 'mike');
$updatefield = array('ModelA.tag' => 'hoge');
$this->ModelB->updateAll($updatefield, $condition);
と書いても
General error: 1 near ".": syntax error
が出ます。
0670nobodyさん
2012/02/22(水) 13:47:15.70ID:???と言うより、2.0については使用者も少なく回答できないんじゃないか?
1.3系の質問は回答されてるし。
頼りないなら他行けば良いんだよ。別に質問スレでもないんだから。
0671nobodyさん
2012/02/22(水) 18:20:43.51ID:???0672nobodyさん
2012/02/22(水) 20:21:09.89ID:???2つの関連性の全くないテーブルA,Bがあります。
ある画面で、その2つのテーブルのデータをまとめて編集し、
1回のPOSTでValidationをかけて保存させたいのですが、
どうすればよいものでしょうか?
A,Bの項目をまとめたCモデルを作って、CモデルにValidationルールを書く。
POSTされたデータはCモデルでValidationを行う。
Validation後にAモデル、Bモデルにデータを分割して、それぞれで保存処理を行う。
こんな感じ?
0673nobodyさん
2012/02/22(水) 20:46:24.93ID:???BモデルはBモデルでバリデーションするだろ?
モデル毎にバリデーションできるんだから。
0675nobodyさん
2012/02/22(水) 21:06:14.46ID:???0680nobodyさん
2012/02/23(木) 15:41:37.63ID:???0681nobodyさん
2012/02/23(木) 16:23:25.15ID:???本家だと数字ついてないけど日本のサイトだと1版って書いてあるから微妙だなw
>>680
公式な発表はないと思うけど、もうリリースがほとんど止まってる感じだからなあ・・・
っていうか1.1はいつのまにか公式から消えてるけどどこかでアナウンスあったっけ?
0682nobodyさん
2012/02/23(木) 22:30:09.21ID:???0683nobodyさん
2012/02/23(木) 22:38:03.57ID:???0684nobodyさん
2012/02/23(木) 22:40:40.54ID:7dkJC+lD$this->paginate = array(
'conditions' => array(
"not" => array(
"Foo.bar" => "false"
)
),
'limit' => 2000,
'order' => array('Foo.date DESC')
);
$this->set('foo', $this->paginator());
と書いたら、「barsテーブルにFoo.barなんてない」ってエラーがでました
コントローラ名からモデルを補完してるんでしょうか?
どうしたらfoosテーブルのデータをページネイションできますか?
ご教示くださいますようよろしくお願いいたします
0685nobodyさん
2012/02/23(木) 23:41:08.20ID:7dkJC+lDを
$this->set('foo', $this->paginate('Foo'));
に書き換えたらいけました
0686nobodyさん
2012/02/24(金) 04:00:19.56ID:???プライマリーキーがないモデルにsaveしようとしたけど、エラー出ました。
0688nobodyさん
2012/02/24(金) 12:24:37.97ID:???→写真
のようなアソシエーションで繋がっているテーブルがあったとして、
会員情報を削除した時、その会員が投稿した日記や写真を
削除する必要があります。
その場合、会員情報を削除した後、日記・写真を削除しますか?
それとも全てアソシエーションで繋げてdeleteAllで削除しますか?
0689nobodyさん
2012/02/24(金) 13:26:33.24ID:???好きにすればいいんじゃね
deleteAllがアソシエーション含んだ削除って誤解してる気がするんだけど気のせい?
0690nobodyさん
2012/02/24(金) 13:56:47.10ID:???0691nobodyさん
2012/02/24(金) 14:01:26.76ID:???まさに勘違いしてました・・。
アソシエーションの削除が上手く行かないので
自分は個別に削除するやり方をしているのですが、
勘違いだったようです。すみません。
0692nobodyさん
2012/02/24(金) 19:09:30.64ID:???find('all')で複数県取得したデータを、1.3まではviewで$xml->serialize()に
データを渡していました。
2.0からはxmlHelper自体が廃止となって、代わりにXml::buildを使えとのことですが、
1.3と同様の複数県のデータを渡すと例外となります。
1.3と同様の結果が取得できるように死体のですが・・・
0693nobodyさん
2012/02/24(金) 19:10:11.66ID:???0694nobodyさん
2012/02/25(土) 15:36:54.21ID:???データベースを使うほどじゃない簡単なデータ保存処理のためにtxtファイルを読み書きしたいのですが、どこに置いてもうまくアクセスできません。
自分で用意したファイルにアクセスするにはどうしたらいいのですか?
0695nobodyさん
2012/02/25(土) 16:53:26.47ID:???0696nobodyさん
2012/02/25(土) 17:03:08.52ID:???テキストファイル自体は多くて10個程度のワードを保存&編集したいだけなのですが・・・
0697nobodyさん
2012/02/25(土) 17:25:39.89ID:???ものすごい遅いんですが、解決法はあります?
みなさんどうしてます?
0698nobodyさん
2012/02/25(土) 17:33:00.25ID:???0700nobodyさん
2012/02/25(土) 18:04:29.58ID:???自分で、model、またはdata sourceを書く。
csvならdata sourceあった希ガス
0702nobodyさん
2012/02/25(土) 18:06:37.16ID:???>>700
ありがとうございます
まずはdata sourceについて勉強してみます
0705nobodyさん
2012/02/25(土) 22:48:10.62ID:???ラジオボタンの場合、項目を選択せずに送信すると
空データではなく、存在しないものとして扱われます。
ですので、バリデーションルールでnotEmptyを指定しても
正しく機能しないのですが、どうすればいいのでしょうか?
0706nobodyさん
2012/02/26(日) 13:38:17.41ID:???0707nobodyさん
2012/02/26(日) 14:15:41.40ID:???0710nobodyさん
2012/02/28(火) 11:46:10.73ID:???where句に使用しているカラムにインデックスはるとか、
joinしてるなら、その辺も確認したほうがいい。
0711nobodyさん
2012/02/28(火) 15:16:02.31ID:pz8Lp3oaルーティングで躓いています。
以下のようなコントローラを用意しました。
class EntryController extends AppController {
var $name = "Entry";
var $autoRender = false;
function index(){
die('index');
}
function success(){
die('success');
}
}
http://example.com/entry/
は正しく実行され、'index'が表示されるのですが、
http://example.com/entry/success/
は、Segmentation faultが発生し、Abortします。
routes.php などの設定は、敢えて変更せず使用しています。
同じような現象を経験した方、いらっしゃいますか?(そもそも、2.0.6使っている人いるんだろうか)
0712nobodyさん
2012/02/28(火) 15:21:47.73ID:???また、http://example.com/entry/index は表示される?
0713nobodyさん
2012/02/28(火) 15:25:44.20ID:pz8Lp3oasuccess以外でも一緒です。
/entry/index もダメです。
/entry/index/abc/def もダメです。
0714nobodyさん
2012/02/28(火) 16:50:04.76ID:???Router::parse($request->url);
の結果を見ると、以下のようにルーティングが間違っているようです。
array(5) { ["controller"]=> string(7) "success" ["named"]=> array(0) { } ["pass"]=> array(0) { } ["action"]=> string(5) "index" ["plugin"]=> NULL }
Routerがちょっと怪しいので、調べてみます。
0715nobodyさん
2012/02/28(火) 17:13:46.37ID:???/lib/Cake/Network/CakeRequest.php に、おかしな箇所を見つけました。
下記引用の下から5行目、「$baseUrl」なんですが、どこでも宣言されていないのでif自体に意味がないようです。
protected function _base() {
$dir = $webroot = null;
$config = Configure::read('App');
extract($config);
if (!isset($base)) {
$base = $this->base;
}
if ($base !== false) {
$this->webroot = $base . '/';
return $this->base = $base;
}
if (!$baseUrl) {
//★ここを改編したらうまくいった
//$base = dirname(env('PHP_SELF'));
$base = '';
0717nobodyさん
2012/02/29(水) 02:33:19.83ID:???公式のマニュアルを見ているのですが、
/pizza/pizzaOrders/index
でアクセスする方法は分かるのですが、
/pizza/
でアクセスするにはどうしたら良いのでしょうか?
普通に/app/controllers/pizza_controller.phpを作ればいいと思ったのですが、
作ってもアクセスエラーになります。
これってルーティングの設定になるのでしょうか?
0718nobodyさん
2012/02/29(水) 08:54:37.66ID:???1000件しか表示しない!って決めたら、
function paginateCount($conditions = null, $recursive = 0, $extra = array()) {
return 1000;
}
こうしてもいいんですかね?
0719nobodyさん
2012/02/29(水) 15:57:45.32ID:OuUO3AKRプラグイン関係ない
ルーティングの問題
0721nobodyさん
2012/02/29(水) 21:04:59.32ID:???/app/plugin/pizza/controllers/pizza_controller.php
(要するにプラグイン名と同名のコントローラー)を作って、indexアクションを作れば
ルーター触らなくても/pizza/でアクセス可能だよ。
0723nobodyさん
2012/03/01(木) 05:51:29.65ID:???同じのでもサイトのコンテンツによって変えてる
0724nobodyさん
2012/03/05(月) 10:09:01.94ID:???つうかペース早いな
0725nobodyさん
2012/03/05(月) 19:23:27.93ID:???公式サイトも変わってCookBookもなんか綺麗になったー
マイグレーションガイドによると.htaccessの変更が必要という、
アップグレード時に見落としがちな変更があるのにリリース文では触れられてないな・・・
http://book.cakephp.org/2.0/en/appendices/2-1-migration-guide.html
http://bakery.cakephp.org/articles/lorenzo/2012/03/05/cakephp_2_1_0_just_landed
0726nobodyさん
2012/03/05(月) 20:11:55.24ID:???0727nobodyさん
2012/03/05(月) 20:59:06.49ID:???2.0.xは今までのバージョン系列で一番寿命が短いし、下手したら1.3.xより今後のアップデートが期待できない気がする
0729nobodyさん
2012/03/05(月) 23:42:52.00ID:WIGrArNU自分の一つ上のレスも見ようぜ!
0730nobodyさん
2012/03/06(火) 01:02:47.42ID:???2.0系は結局書籍も出ずじまいか。
0731nobodyさん
2012/03/06(火) 03:40:14.04ID:???0733nobodyさん
2012/03/06(火) 22:01:24.25ID:???2.0は短命だったね・・・
本が出ないのもしょうが無いというか、出してしまっていたらすごい中途半端なタイミングになっていたと思う
1.2 2008/12
1.3 2010/04
2.0 2011/10
2.1 2012/03
0734nobodyさん
2012/03/06(火) 23:43:25.94ID:???普通にqueryでベタSQL投げないと駄目?
0735nobodyさん
2012/03/07(水) 18:16:47.78ID:???0736nobodyさん
2012/03/07(水) 22:24:25.29ID:???俺はSNSで3ヶ月。
0737nobodyさん
2012/03/08(木) 08:15:28.96ID:???2ヶ月3000万円
0739nobodyさん
2012/03/08(木) 10:16:55.80ID:???国のシステムだからそんなに凝ったことはしてないだろうけど、
どんな機能があって2ヶ月なんだろ?
0740nobodyさん
2012/03/09(金) 11:27:56.60ID:???0741nobodyさん
2012/03/09(金) 11:43:23.36ID:???0742nobodyさん
2012/03/09(金) 12:57:11.13ID:???0743nobodyさん
2012/03/09(金) 13:13:11.92ID:???0744nobodyさん
2012/03/09(金) 14:27:27.18ID:???0745nobodyさん
2012/03/09(金) 16:18:01.14ID:???0746nobodyさん
2012/03/09(金) 16:24:51.22ID:???0747nobodyさん
2012/03/09(金) 16:51:22.89ID:???エイリアス使ってるバカってまだいたんだwwwwwwwwwwww
0748nobodyさん
2012/03/09(金) 16:54:34.34ID:???0749nobodyさん
2012/03/09(金) 17:40:19.41ID:???0750nobodyさん
2012/03/09(金) 17:54:30.33ID:???繋げるにはどうすればいいのでしょうか?
0751nobodyさん
2012/03/11(日) 02:18:22.14ID:???0752nobodyさん
2012/03/11(日) 10:46:34.94ID:???PHPSESSIDをくっつけたい(?PHPSESSID=hoge)んだけど、どうしたらいいかな
コアの$html->link()を書き換えたりしたらいけそうだけど、
もっとスマートな方法ある?
0753nobodyさん
2012/03/11(日) 11:29:49.63ID:???自己解決
'options' =>
array(
'?' => array(session_name() => $this->Session->id())
)
こうした
0754nobodyさん
2012/03/11(日) 16:36:31.78ID:???CakePHPでのCookieを書き込む際に暗号化したデータをJavaScriptで復号するロジックはありますか?
0755nobodyさん
2012/03/11(日) 22:15:13.63ID:+TvrXerPいいからCakePHPで複合主キーに対応する為のプラグインを誰か書けや。
な?
0756nobodyさん
2012/03/11(日) 23:31:02.18ID:???ソース見る限り、Security::$typeで設定した暗号方式でSecurity.salt使って
それをbase64_encodeして暗号化してるっぽいので
それを逆に処理すればJavascriptでも復号化できると思う。
詳しくはcookie componentのソース見て。
だけど、複合に必要なキーのSecurity.saltをJavascriptに
書かないといけないので、そもそもなんで暗号化したんだって
ことになるので設計を見なおしたほうがいい。
0757nobodyさん
2012/03/12(月) 00:06:16.05ID:uEcRtOSh老婆心ながら、>>756が言っていることを強調しておく。
設計を見直せ。salt の意味がない。
0758nobodyさん
2012/03/12(月) 13:24:30.73ID:???@以前のユーザ作成してるのかな?noreplyみたいな
存在しないアカウントをreturn-pathに設定してメール送ってるのかな?
0759nobodyさん
2012/03/12(月) 16:18:31.39ID:???複数チェックボックスを使って、チェックした項目をDBに登録し、
後から検索できるようにしたいと思います。疑問は2点。
1:テーブルの1つのカラム内にカンマ区切りで登録するのでしょうか?
2:その場合、conditionsで検索できるのでしょうか?
0760nobodyさん
2012/03/12(月) 17:53:27.28ID:???テーブルに保存してますか?
afterFindなどで組み立ててますか?
それとも、ビューでその都度組み立ててますか?
0761nobodyさん
2012/03/12(月) 18:10:15.80ID:???0763nobodyさん
2012/03/12(月) 19:58:56.46ID:???どうやって検索するのでしょうか?
1カラムにカンマ区切りのレコードがあったとして、
それをCakeのconditionsで検索する方法がわかりません
■ このスレッドは過去ログ倉庫に格納されています