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

このエントリーをはてなブックマークに追加
1nobodyさん
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです。

※sage推奨
テンプレは>>1-5くらい

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
thechaw
http://thechaw.com/projects
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
CakeMatsuriTokyo2009
http://matsuri.cakephp.jp/
2nobodyさん:2009/09/01(火) 16:12:35 ID:???
■過去スレ
【PHP】フレームワーク CakePHP 6ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1236563737/
【PHP】フレームワーク CakePHP 5ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1229669539/
【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/
3nobodyさん:2009/09/01(火) 16:13:00 ID:???
■その他いろいろ
連載:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/cakephp

CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions
ttp://www.cpa-lab.com/tech2/inflects/

Free CakePHP Book (Matt Curry and Mark Story)
http://www.pseudocoder.com/free-cakephp-book/

あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/

CakePHP Note
http://www.garacter.com/notes/CakePHP+Note/ni:5

CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/

Qdmail(日本語メールコンポーネントとして利用可能なライブラリ)
ttp://hal456.net/qdmail/

10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

CakePHPカンファレンス東京(2008)
http://conference.cakephp.jp/
4nobodyさん:2009/09/01(火) 16:13:21 ID:???
■ver1.1用
CakePHP プログラマーズ リファレンスガイド
http://cakephp.jp/doc/

CakePHPフレームワークによる快速WEB開発 |codezine
http://codezine.jp/a/article/aid/670.aspx


■関連書籍
・ver1.2系
CakePHP1.2ガイドブック
http://www.amazon.co.jp/dp/4839932468/
CakePHPによる実践Webアプリケーション開発
http://www.amazon.co.jp/dp/4839930651/
オープンソース徹底活用 CakePHPによるWebアプリケーション開発
http://www.amazon.co.jp/dp/4798022225/
CakePHP ポケットリファレンス※ver1.2beta
http://www.amazon.co.jp/dp/4774135038
CakePHP徹底入門
http://www.amazon.co.jp/dp/479811717X
・ver1.1系
CakePHPガイドブック
http://www.amazon.co.jp/dp/4839924317
Fast CakePHP
http://www.amazon.co.jp/dp/4774133418


■関連スレ
【PHP】フレームワークについて語るスレ13【総合】
http://pc11.2ch.net/test/read.cgi/php/1237825268/
5nobodyさん:2009/09/01(火) 16:13:48 ID:???
テンプレらしきものは以上
補足があればどうぞ

Have a Nice Cooking !
6nobodyさん:2009/09/01(火) 17:42:35 ID:???
7nobodyさん:2009/09/01(火) 18:15:29 ID:???
スレbake乙
8nobodyさん:2009/09/01(火) 18:16:13 ID:???
スレscaffolding乙
9nobodyさん:2009/09/02(水) 13:12:39 ID:???
スレアソシエーション乙。
10nobodyさん:2009/09/02(水) 15:49:16 ID:???
cakeってキャッシュのグループ化とか出来ないのかね。
まとめて削除とかしたいんだけども。
11nobodyさん:2009/09/03(木) 12:27:23 ID:???
ディレクトリ覗いてキャッシュ削除するのが、そんなに辛いの?
12sage:2009/09/03(木) 12:29:16 ID:6RTv1eVY
1.2ガイドブックを読んでいます

テーブルに日付データを持たせてdatetime型で作成し、その後bake実行し、
ふんふんと眺めてみました。

新規作成のadd画面ではその日付データはドロップダウンリストになっているのですが、
そこに選択肢として、冒頭に「空白」(選択しない)を持たせたいと思っています。
現在、bakeされたソースコードは
echo $form->input('enddate',array('dateFormat'=>'YMD','monthNames'=>false,'timeFormat'=>'NONE'));
こんな感じでかかれているのですが、上記のようなことをしたい場合は

$form->selectの形で全体を書き換えなくてはいけないのでしょうか。
日付選択なので、現状の年月を取得するためのロジックはあえて書きたくないので、ピンポイントで
修正できる方法がないかと思っています。

それともbakeは本当に枠組みだけなので詳細なオプション等は書き換えが前提なのでしょうか。

よろしくお願いします。
13nobodyさん:2009/09/03(木) 13:58:34 ID:???
>>12
オプションに
'empty' => '選択してちょ'
だったと思う

select 使う場合は、'showEmpty' => 'select me'
1413:2009/09/03(木) 13:59:43 ID:???
ごめん。select使うときは>>13じゃなくて、第5引数に設定だた
15nobodyさん:2009/09/03(木) 14:45:27 ID:???
>>11
ファイルベースでやるなら
rmコマンド使ってまとめて消せるからいいんだけど
memcacheとか使うと出来ないじゃん。
1612:2009/09/03(木) 18:07:45 ID:???
>>13
ありがとうございます!!
無事に
echo $form->input('enddate',array('dateFormat'=>'YMD','monthNames'=>false,'timeFormat'=>'NONE','empty' => '選択してちょ' ));
こう書くことで一番初めの選択肢に追加することができました!
これを読んだあと、
http://book.cakephp.org/ja/view/189/Automagic-Form-Elements
こちらに同じことがかいてありました・・、すいません。
inputの第一引数の値によって、表示するタイプが違うので勝手にドロップダウンリストになるのですね。

実際、ビューに自作で手を入れるときはinputではなくselectを使用するほうがいいのかな、とは
思っているのですが(見た目で何が表示されるのかわかりづらい気がしました)
ありがとうございました。

ガイドブックにはここらへんの説明があまりかかれてないので、助かりました、ありがとうございます。
17nobodyさん:2009/09/03(木) 22:56:22 ID:l9lqLow/
>>16
どういたしまして。がんばりや。
18nobodyさん:2009/09/04(金) 13:12:26 ID:???
cakeでSNS作ってて質問があります。
1つの検索フォームに「ユーザー」「日記」の2つのラジオボタンを置いてラジオボタン別に検索内容を出し分けたい。
この場合フォームの送り先のControllerはどうするのが適切なのかな?

1. UsersControllerに送信してラジオボタンが「日記」だった場合はDiaryControllerにリダイレクトする
2. SearchesControllerみたいなのを作ってそこに送信。その中でどちらかのモデルから検索結果を取得
3. 根本的に頭の中がおかしい

アドバイスお願いします。
19nobodyさん:2009/09/04(金) 13:12:50 ID:???
HttpSocketつかえねーな

Cookieの発行がおかしい
⇒チケット出てるみたいだけど、Cookieの仕様書どおりに作ったと言い張ってる?
リダイレクト
⇒3xxのリダイレクトを追跡してくれない。まぁ自分で追跡すればいいんだけど面倒

すなおにPear::HTTP_Clientつかった
20nobodyさん:2009/09/04(金) 14:40:43 ID:???
>>18
PCならJavascriptで切り替えればいいと思うけどそれをしないなら
俺は2を使うな。

>>19
複数クッキーに対応してないだけでしょ。
書き直したら使えたよ。
21nobodyさん:2009/09/04(金) 14:55:30 ID:???
core書き直しはヤダ
継承したクラス・・・めんどい
22nobodyさん:2009/09/04(金) 15:32:52 ID:???
CURLでええやん
23nobodyさん:2009/09/04(金) 19:30:20 ID:???
あのさ、今めっちゃ困ってたんだけど、cakeでねshuffleしたんだよ。配列を。

じゃあさ普通毎回配列の中身変わるじゃん?変わんないの。

なんでなん?shuffleって確か中身はrandだからsrandが固定されてんのかなって思って

コアライブラリにgrep掛けて探したら居るわけ。
cake\libs\security.php
********************************************
if (!defined('CIPHER_SEED')) {
//This is temporary will change later
define('CIPHER_SEED', '76859309657453542496749683645');
}
srand(CIPHER_SEED);
********************************************

まぁsrandちゃんとしない俺が悪いけどさ、
76859309657453542496749683645ってなんなのさ
誰か教えてよ!
24nobodyさん:2009/09/04(金) 19:43:31 ID:???
最近、CakePHPに興味を持って触りだした初心者なんだが先人達にauthコンポーネントの使い方について質問したい。
みなさんは、認証が必要なページと不要なページが混在している場合ってどうしてますか?

1.AppControllerでauthコンポーネントを読ませて、認証が不要なページでAuth::allow()を呼ぶ
2.認証が必要なページでのみauthコンポーネントを読ませる
3.authコンポーネントを使用しない

どれもスマートさに欠ける気がするのだが、何か他に良い方法があったら教えて欲しい。
25nobodyさん:2009/09/04(金) 19:56:15 ID:???
>>24
認証が必要なページってどんなページ
2624:2009/09/04(金) 20:19:56 ID:???
>>25
データの更新が可能なページ

参照系のページは、認証(ログイン)不要にしたい。
ゲストアカウント作っても良いのだが、一々ログインさせるのは面倒かなと思っています。
自動的にゲストアカウントでログインさせる様な巧い手があれば、それもアリかな?とも思っています。

ちなみにaclコンポーネントは自前で書いて、Auth->autherise=array('object'=>'HogeAcl');しようと画策してます。
※autherise:スペル違うカモ…手元にPC無いので確認出来ない
27nobodyさん:2009/09/04(金) 22:32:15 ID:???
>>24
CakePHPのマニュアル的には1と2を場合によって使い分けるのがスタンダードじゃないのかな。
2824:2009/09/05(土) 00:34:22 ID:???
>>27
やっぱり、それがスタンダードですか。

とりあえず、今は↓みたいな感じでやってみようかと妄想してます。
・AppControllerでauthコンポーネントを読ませる
・beforeFilter()内で、未認証だった場合に Auth->login($dummy_user) を呼び出してダミーアカウントで認証
・afterFilter()又はbefore/afterRender()内で、ダミーアカウントで認証されていた場合にログアウト処理を呼び出す

29nobodyさん:2009/09/05(土) 11:21:53 ID:4jU9VbTX
>>28

beforeFilter()内で
$this->Auth->allow()
$this->Auth->deny()
使ってやるのはダメなの?
3024:2009/09/05(土) 18:13:26 ID:???
>>29
あ、、、
確かに、>>28みたいにするくらいならbeforeFilter()内で自前のACL用コンポーネントのチェックメソッド呼んでallow()、deny() する方がスマートですね。
いつの間にか、Auth->authorize を使用する事に固執してしまっていたようです。
3112:2009/09/05(土) 18:43:41 ID:???
答えになってないかもな初心者ですが、ガイドブックの方では
(もしごらんになっていたらすいません)

・ユーザー登録(認証いらない)
・ブックマーク登録(認証必要)
みたいなケースの場合
app/app_controller.phpに認証必要フラグ$needAuthをfalseにし、trueの場合は
認証が正しくない場合は、エラーをだす。falseのときは何もしない。
というような処理をさせておいて
各コントローラーに、その認証必要フラグをいちいち
true,falseに切り替えることで処理していました。

userのコントローラーはneedAuthフラグをfalseにし
bookmarkコントローラーはneedAuthフラグをtrueにすると上位の
コントローラーでログイン情報の有無を確認する、という感じでしょうか。

まだ私がneedAuthコンポーネント使ってないので参考にならないかもしれません。
32nobodyさん:2009/09/07(月) 12:31:03 ID:???
CakeのAuthは思ったより複雑だよね。

CakeでLDAP認証制御できたら、
フォルダのパーミッション毎に認証のON, OFFの切り分けできるのになぁと夢想したりする。

33nobodyさん:2009/09/07(月) 17:12:43 ID:???
AuthというかACLね。面倒なのは。
34nobodyさん:2009/09/08(火) 00:46:21 ID:xTRWhMD6
ACLって開発の最後に使う? 最初に使う?
35nobodyさん:2009/09/08(火) 00:53:44 ID:???
最初に作っちゃうといろいろメンドクサイよね。
ある程度コントローラが固まった段階で入れてます。
36nobodyさん:2009/09/08(火) 06:26:04 ID:???
MySQL、PostgreSQL、SQLiteの使えないサーバでCakePHP使ってる人いますか?
37nobodyさん:2009/09/08(火) 10:31:43 ID:???
>>36
MySQLもない格安レンタルサーバーでCakeが動くかどうかわからないぞ。
もしPHPのメモリが足りたとしても、
大人しくCodeIgniterあたりでも使った方が良い。
38nobodyさん:2009/09/08(火) 11:14:35 ID:???
>>37
ばっか。Oracl使ってんだよ。きっと。
39nobodyさん:2009/09/08(火) 12:10:55 ID:???
そういえば、DB使わない開発できるけど、
DB無しの環境で動くのかどうか判らないなぁ
40nobodyさん:2009/09/08(火) 13:16:29 ID:???
>>39
設定次第では普通に動くでしょ
41nobodyさん:2009/09/08(火) 13:22:21 ID:???
app_modelに
$uses = false;
とか書けばいいだけじゃないの?

modelのCRUDを全てファイル操作にマップするビヘイビアとか探せばありそう。
いろいろ制限はされるし動作は遅いだろうけど
42nobodyさん:2009/09/08(火) 14:04:23 ID:???
ちょっと趣旨は違うけどSQliteとかPosqlとか使えばいいんじゃない
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=2061&forum=6
4336:2009/09/08(火) 22:15:21 ID:???
>>37
軽いフレームワークなんですね。>CodeIgniter
なかなか良さげなので調べてみます。

>>42
Posqlいいですね!pure PHPのデータベースでCakePHP対応してるなんて、まさに求めてた物です。
早速使ってみようかな。速度とか、安定性とかちょっと心配ですが…
44nobodyさん:2009/09/09(水) 00:40:18 ID:???
フォームからのファイルアップロードのページを作ってるんですけど、

アップロードされたファイルを確かめて、
ファイルの種類によって処理を分けて(例えば画像だったらExifを解析したりサムネイルをつくるとか)
データを登録・・・っていう流れなんですけど、
そのまま直線的に書くと、コントローラーがどどーっと長くなってしまいます。

どの辺からモデルの仕事と分けるべきでしょうか?
45nobodyさん:2009/09/09(水) 00:43:12 ID:???
全部じゃね?
46nobodyさん:2009/09/09(水) 00:44:11 ID:???
class.uploadだっけ?
みたいな既存のライブラリをベンダーで読み込むとか
コンポーネント使うとか
47nobodyさん:2009/09/09(水) 01:01:21 ID:rQurxkXZ
>>44

つMedia Plugin
4844:2009/09/09(水) 02:17:00 ID:???
ありがとうございます。
確かに >>46 さんの言うようにコンポーネントかなあとも思ったりしたんだけど、
コンポーネントでいろいろやってDB保存用のデータを出してくるんだったら、
最初からモデルなのかなあ。とも悩んでみたところでした。

Media Pluginつうのを調べてみたらビヘイビアで処理してるんですね。
これをちょっと試してみます。
49nobodyさん:2009/09/09(水) 03:01:54 ID:???
コントローラ
処理を分ける部分。if文と各種呼び出しのみ。
if文が連なって長くなってもそれは仕方が無い。

コンポーネント
アップロードされたファイルの処理の部分

モデル
その他
50nobodyさん:2009/09/09(水) 10:37:42 ID:???
モデルに処理書いてついでにアップロードのバリデーションエラーも書く
51nobodyさん:2009/09/09(水) 18:58:34 ID:rQurxkXZ
MeioUpload ってやつもあるよ
52nobodyさん:2009/09/10(木) 15:07:21 ID:???
こんにちは^^
hoge.com/users/login
としたいんですが

hoge.com/app/users/login になってしまいます><
app不要なんですがどこを弄ればいいですか?
53nobodyさん:2009/09/10(木) 16:28:33 ID:???
>>52
ウェブルート/app/index.php
を読み込むからだろ。

ウェブルート直下にindex.php置けや。
54nobodyさん:2009/09/10(木) 16:45:19 ID:???
ありがとうございます
できました><
55nobodyさん:2009/09/10(木) 17:16:22 ID:???
>>52
一応言っておくけどそれ、apacheの質問だからね。
スレ違い
56nobodyさん:2009/09/10(木) 17:19:33 ID:???
>>55
ちげーし
57nobodyさん:2009/09/10(木) 17:54:11 ID:???
>>56
アパッチのことなんもわからんとリライト使ってるcakeなんか使うから
わからんくなるんだろ。
58nobodyさん:2009/09/10(木) 18:24:29 ID:???
なんで喧嘩腰やねん
59nobodyさん:2009/09/10(木) 19:01:52 ID:???
>>58
お前が慣れへん関西弁なんか使うからやないか
60nobodyさん:2009/09/10(木) 20:09:26 ID:???
お前が慣れへん関西弁なんか使うからやないか〜い
61nobodyさん:2009/09/10(木) 20:19:38 ID:???
おまえら関西バカにすんなや
怒るでしかしw
62nobodyさん:2009/09/10(木) 20:30:45 ID:???
ワイが浪速のケーキ職人やでホンマ
6358:2009/09/10(木) 20:34:14 ID:???
大阪生まれ大阪生まれやヴォケ
64nobodyさん:2009/09/10(木) 20:34:54 ID:???
後半育ちって書こうとしてまちごーたやないかボケ
65nobodyさん:2009/09/10(木) 21:29:59 ID:vjF96vcK
SELECT tables.created + INTERVAL 1 HOUR FROM tables
とかどうすればいいん?

$this->Table->find('all',array('fields'=>'Table.created + INTERVAL 1
HOUR AS hoge'));
だと
SELECT `Took`.`created + INTERVAL 1 HOUR` AS `hoge` FROM `tables` AS `Table`
とかになってエラーになる

$this->Table->query('SELECT tables.created + INTERVAL 1 HOUR AS hoge
FROM books');
$this->Table->{'SELECT tables.created + INTERVAL 1 HOUR AS hoge FROM books'}();
しかないの?
66nobodyさん:2009/09/10(木) 22:51:58 ID:???
>>65
DATE_ADD( Table.created, INTERVAL 1 HOUR) as hoge
ではどうでしょ?
67nobodyさん:2009/09/10(木) 22:57:56 ID:???
>>65
パフォーマンス上問題が無いのであれば、
PHP側で実装する。

そうするとデータベース変更しても使えるしね。
E○-○UBEみたいに、ifでDB判断して
実行するSQLを切り替えなくてすむぞw
68nobodyさん:2009/09/11(金) 11:07:52 ID:breeYuOb
ご質問させてください。
hoge_controllerがあって、
使うのテーブルがhoge1とhoge2がある場合、
モデルはhoge1.phpとhoge2.phpになるのでしょうか?

今までコントローラー名とモデル名は同じで作成していたのですが、
一つのコントローラーで2つのテーブルに同時にsaveしたい時に
どうしてもこのやり方ではできなくなってしまったので・・・

$this->Model->query()で無理矢理やれない事もないのですが、
$this->Model->query()がクエリに成功しても失敗しても
レスポンスが返ってこないのでエラー処理できなくて困ってます。

ご教授いただけるとありがたいです。
69nobodyさん:2009/09/11(金) 11:17:45 ID:???
>>68
アソシエーションをちゃんとかいてれば、まとめてsaveするよ。

hoge1とhoge2の関係性とか書いたほうがいいんじゃないかな。
70nobodyさん:2009/09/11(金) 11:35:25 ID:breeYuOb
>>69
ありがとうございます。

hoge1とhoge2の関係が1:多の関係で、
今やっているのが、hogeControllerに
$users= array('Hoge');
と記述していて、

hogeModelには
useTable = "hoge1";
となっています。

hogeModelからfindでhoge1の情報を取得しているのですが
最終的にその情報をもとに、hoge1とhoge2にそれぞれ
UPDATEとINSERTをやりたいのです。

その場合、それぞれテーブルごとにモデルを作成して、
hoge1側に$hasOneを設定すればいいのでしょうか?

71nobodyさん:2009/09/11(金) 11:39:45 ID:???
>>70
× $users = array('Hoge');
○ $uses = array('Hoge');

ですね、失礼しました。
72nobodyさん:2009/09/11(金) 12:00:54 ID:???
>>70
Hoge1 を Article
Hoge2 を Comment
とすると

Articleモデルは
$hasMany = array('Comment');

Commentモデルは
$belongsTo = array('Article');
としておけばよい

あとは、ArticlesControllerで
$this->Article->saveAll とか $this->Article->Comment->save とかする
73nobodyさん:2009/09/11(金) 12:02:31 ID:???
>>70
>その場合、それぞれテーブルごとにモデルを作成して、
>hoge1側に$hasOneを設定すればいいのでしょうか?
それでいいと思うよ。

なるべく$usesとか使わないで、命名ルールに素直に従う方が後々楽ですよ。
例えば、テーブル名をhogeとhoge1にしてHogeモデルとhogeコントローラーを作るとか
74nobodyさん:2009/09/11(金) 12:03:42 ID:???
>>72
$this->Article->save
$this->Article->Comment->save
で分けて保存した場合トランザクションが利かないことがあるよね。
75nobodyさん:2009/09/11(金) 12:14:43 ID:???
>>72
>>73
ありがとうございます!参考にさせて頂いてやってみます。
76nobodyさん:2009/09/11(金) 13:11:22 ID:???
>>75
なんか敬語が変だよね。
77nobodyさん:2009/09/11(金) 13:48:03 ID:???
でたな揚げ足マン
78nobodyさん:2009/09/11(金) 16:43:55 ID:???
なぁなぁ、デバッグオフの時にもエラーログ吐かせたいんやけど、
できやへんの?
79nobodyさん:2009/09/11(金) 19:05:57 ID:???
何すんの?
8078:2009/09/11(金) 19:29:39 ID:???
>>79
もしかして俺に聞いてくれてる?


いやほら、なんか予期せぬエラーが出て処理が止まったりしたりしても気づけないじゃん。
81nobodyさん:2009/09/11(金) 20:02:35 ID:???
error_reporting(E_ALL)
82nobodyさん:2009/09/11(金) 20:16:33 ID:???
>>78
さぁ、このページで「log」で検索する作業に入るんだ。
マニュアルに結構載ってるから一通り読んで、まず検索してみろ。
ググっても結構あったぞ。
83nobodyさん:2009/09/11(金) 20:44:00 ID:???
>>82
このページでlogなんかなかったし><
84nobodyさん:2009/09/11(金) 21:02:25 ID:???
>>82
あ、ごめん。数ヶ月前に見たけど出来なかったサイトがあったんだけど、

もう一度見たら出来たわ。ごめんあさい。

http://www.a24loveweb.net/cake/%E9%81%8B%E7%94%A8%E6%99%82%E3%81%ABphp%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
これね!
8565:2009/09/12(土) 00:56:23 ID:???
>>66
いやあ、勝手にパースされて`が変なところに付くということなんで
SQLを変えても意味がないというか。
$this->Table->selectAdd('tables.created + INTERVAL '.$this->Table->escape('$hour').' HOUR AS hoge');
みたいなのがあればいいんだがなあ、と。

>>67
EC-Cubeは使ったことないからわからないが、
今回は単純なSQLだからいいけど、
複雑なのだと非常にパフォーマンス上問題になりそうなのでご勘弁願いたい。

つうかDB乗り換えるような変更があったとしたら、
SQLだけ対応しててもそのまま動くとは思えないんだが。
86nobodyさん:2009/09/12(土) 01:13:40 ID:???
paginatorのsortKeyの第二引数$options['sort']って何ですか?

preg_match('/(?:\w+\.)?(\w+)/', $options['sort'], $result)
とか書いてあるけど全然意味がわかりません。
8712:2009/09/12(土) 11:58:30 ID:???
PostテーブルにFROMのUser.idと
toのUser.idを格納するフィールドを作りました。

Post.user_id
Post.from_user_id
と作成し、
'from_User' =>array('className' => 'User','foreignKey' => 'from_user_id'),
'to_User' =>array('className' => 'User','foreignKey' => 'user_id'),
のように$belongsToを設定しました。

ここでPostの編集画面(edit)でそれぞれのUserを選択させるコンボボックスを表示させる場合に
他所でbakeしたソースを見ると
$users = $this->Post->to_User->find('list');
$this->set(compact('users'));
こうセットしているようなのですが、これだけだとfromの方はtextでidがそのまま出てしまいます。
試行錯誤の結果
$from_users = $this->Post->from_User->find('list');
$this->set(compact('from_users'));
が必要なことがわかったのですが、ここの$from_usersという名称はどこで関連付けた名前なのでしょうか。
toの方は$usersで良いのがなぜだかわからず。
ためしに$usersを$to_usersにしたら動かなくなりました・・・。
モデルの基本的なところが理解できていないかもしれませんが、
こういう場合はどのようにするべきなのでしょうか。
わかりにくい質問ですいません。
88nobodyさん:2009/09/12(土) 12:05:02 ID:???
>>85
ちゃんとやってみたのか?>>66の言うとおり
$this->Table->find('all',array('fields'=>'DATE_ADD(Table.created, INTERVAL 1 HOUR) as hoge'));
でいけるはずだぞ。

>>86
普通は第2引数は指定しないと思う。
そうするとデフォルト値とquery stringをマージして現在のソートキーを返してくれるから。

$options['sort']は、'Model.id'みたいなのから'id'を取り出してるだけじゃなかろうか。
8982:2009/09/12(土) 12:24:36 ID:???
>>82
http://book.cakephp.org/ja/view/2/x1-2-Collection
というurlを入れるつもりだったのは秘密だ ><
ごめんな!>>78
90nobodyさん:2009/09/12(土) 17:49:07 ID:???
; * PHP versions 4 and 5
; *
; * CakePHP(tm) : Rapid Development Framework <http://www.cakephp.org/>



よくコードに上記のようなコメント書いてるけど絶対書かないといけないんですか?
書き方載ってるサイト教えてください
91nobodyさん:2009/09/12(土) 18:13:52 ID:???
>>90
phpDocumentor でググるといいかな。
絶対必要というわけではないけど、
自分で作ったファンクションとかAPIのドキュメントを自動生成するために書式が決まってる。
後から自分のコードを読みやすくするには書いとくクセを付けといた方がいいのかも。
92nobodyさん:2009/09/12(土) 20:34:34 ID:???
>>91
ありがとうございます早速調べてきます
93nobodyさん:2009/09/13(日) 01:37:39 ID:???
最近いいスレだなって思う
うん、それだけ。
94nobodyさん:2009/09/14(月) 21:33:44 ID:SnxRq9UL
uuidほど広範囲でなくて、
そのテーブル内でユニークなランダム文字列ないし数字を振ってくれる便利なものないですか?
UUIDは長過ぎて8文字程度のランダムな文字列を割り当てたいんだけど
95nobodyさん:2009/09/14(月) 22:22:12 ID:???
>>94
MySQLのauto incrementじゃ駄目なん?
あとこの質問はスレ違いじゃない?
96nobodyさん:2009/09/14(月) 23:05:17 ID:SnxRq9UL
ランダムがいいんだよ

CakeのString::uuid()がらみで聞いてみたけど確かにすれ違いかも
Cakeに用意されてたら同じくStringクラスにあるはずだしね。。
97nobodyさん:2009/09/15(火) 00:35:27 ID:???
ちょうどtwitterでよく使われてる短縮urlサービスのbit.lyについてるユニークidみたいな文字列が作りたくて
以前作ってみた。
処理としては、app_modelに、ランダムな/[a-zA-Z0-9]{8}/を返す関数を作り、
save時にそいつを呼び出して割り当てる(既に割り当て済みの文字列だったら、新しいものが出てくるまで処理を繰り返す)
これでいけた。まあ自前で作っても簡単。
98nobodyさん:2009/09/15(火) 01:27:37 ID:???
uuid を crc32 するとか
なんかアホらしい気もするが
99nobodyさん:2009/09/15(火) 13:15:24 ID:???
>>95
俺なら、それをmd5やらbase64やらsubstrして取り出すけどな。
100nobodyさん:2009/09/15(火) 13:20:04 ID:???
もうタイムスタンプか、それを16進数化とかが一番被らなくていいんじゃね
101nobodyさん:2009/09/15(火) 13:31:25 ID:jnkEds0n
あー皆さんありがとうございます。
速度遅そうですが以下のようにしました。

Model->__schemaあたりからidのカラム長を取得
Text_Passwordでカラム長のパスワードを生成
Model->findしてかぶりがないかチェック
かぶっていれば10回まで再帰

ってなビヘイビアを作り読み込む。
102nobodyさん:2009/09/15(火) 15:10:50 ID:???
>>101
10回やってもかぶってたらどんな処理にすんの?
103nobodyさん:2009/09/15(火) 15:17:53 ID:???
uniqid() はダメなの?
104nobodyさん:2009/09/15(火) 15:18:09 ID:???
GCして常時20〜50前後のレコード数なので
まず普通は一回でもかぶらないのですが
一応10回まで回してそれでもだめならfalse返して終了

false受け取ったら自分にメール通知して、
画面はエラーです。。


今回はいいけど、他の案件で使おうと思うと全然だめですね。

uuidの36進数とかもやってみたけど結構文字数多いんですよね。
あと、time()を元にすると同秒の時の処理が・・・と、あと前後レコードを推測されやすいので
105nobodyさん:2009/09/15(火) 15:19:17 ID:???
>>103
うわっそういやそういうのがあった。。
ありがとうございます!!
106nobodyさん:2009/09/16(水) 00:09:49 ID:???
>>104
UUIDにはプロセスIDを含むはずなので、同時刻に生成しても問題ないはず

というか、そういう場合も含めて一意になるように設計してある規格なので
そこで衝突が起こったらUUIDの存在意義がなくなるような
107nobodyさん:2009/09/16(水) 00:37:00 ID:???
そんな話してないだろ
108nobodyさん:2009/09/16(水) 13:06:49 ID:???
キャッシュエンジンがファイルの時だけ
ディレクトリ選べたらいいですのに。
109108:2009/09/16(水) 13:37:35 ID:???
キャッシュする時に大量のキャッシュする場合あるじゃない?

それをファイルベースでやると1つのディレクトリに何個もファイルが増えるのが嫌なの。


で、それを解消するのにどうしようかなぁと思ったんだけど
キャッシュを操作する直前にCache::configuいじって
プリフィックスにディレクトリ情報つけるだkでよかった。
110nobodyさん:2009/09/16(水) 13:42:09 ID:???
そりゃよかった
111nobodyさん:2009/09/17(木) 04:47:23 ID:???
>>109
キャッシュ用のディレクトリ内でファイルが増えるのをなんで嫌うの?
煽りじゃなくてまじで聞きたい。
112nobodyさん:2009/09/17(木) 06:34:31 ID:???
ブラウザを別に複数立ち上げて、CakePHPで作ったサイトにそれぞれログインすると、
ブラウザ間でSession情報を共有しちゃうんだけど、そういうものですか?
113nobodyさん:2009/09/17(木) 10:37:05 ID:???
>>111
http://x68000.q-e-d.net/~68user/unix/pickup?%A5%D5%A5%A1%A5%A4%A5%EB%C0%A9%B8%C2%A4%DE%A4%C8%A4%E1
●ファイル・ディレクトリ数の上限
ひとつのディレクトリに置くファイルは、多くても 1000個程度にとどめておくことをお勧めする




これを見てダメだと思ったんだけど俺間違ってるのかな。
114nobodyさん:2009/09/17(木) 10:47:44 ID:???
どーでもえーわ
115nobodyさん:2009/09/17(木) 11:37:56 ID:???
>>113
ファイルリスト取らなけりゃ関係ないと思うけど。
116nobodyさん:2009/09/17(木) 12:10:36 ID:???
bootstrap後とか
セッション開始前とか
そのあたりでpluginのコールバックを呼び出す機構がほしいな
pluginの幅が広がると思うんだけど
117113:2009/09/17(木) 12:18:13 ID:???
>>115
そうなの?直接ファイルにアクセスするのには
ひとつのディレクトリにいっぱいいても大丈夫なのか。

キャッシュならFTPで接続しても見ることないしいいってことね!
118nobodyさん:2009/09/19(土) 01:52:48 ID:???
mediaPluginってPHP5.2以上ってあるけど、
明確に5.2以上でないと動かない機能を使ってるんですかね?
うち5.1台なんですけどむりすか
119nobodyさん:2009/09/19(土) 02:56:08 ID:???
>>118
Media Pluginのソース全部読んだわけじゃないけど、
一部pathinfoの定数とかに5.2で追加されたものが使われてたのは発見したよ。
120nobodyさん:2009/09/20(日) 10:31:46 ID:???
Security.level=highのままでajaxを使いたいんですけど、手間かかりますか?
やはりmediumとかに落としたほうがいいんでしょうか?
121nobodyさん:2009/09/20(日) 18:50:11 ID:4/VSd770
Bakeって実際のアプリ作成で使う?
アプリの要件がモデルと単純に結びついてるケースなんてあんまりなくね?
コード拾い場として使うくらい?
122nobodyさん:2009/09/21(月) 04:36:43 ID:???
テンプレートの拡張しが.ctpな意味って何?
.phpの方がエディタとかで扱いやすいだろJK
123nobodyさん:2009/09/21(月) 07:31:21 ID:???
こういう板でこんな壮絶な釣りははじめてみた。
124nobodyさん:2009/09/21(月) 08:12:05 ID:???
は?
合理的な理由言ってみろや
125nobodyさん:2009/09/21(月) 08:17:13 ID:???
hoge.ctp.phpなら分かる
オリジナルの拡張子にする害はあっても利はゼロだろ
126nobodyさん:2009/09/21(月) 08:48:28 ID:???
出力をキャッシュしてエンコード変換したいんだけど
そういう各アクション共通のフィルタって
基底クラスのAppControllerに実装するの?
127nobodyさん:2009/09/21(月) 11:34:52 ID:PliNJAC7
>>126
そう。
afterLayout()とかで
128nobodyさん:2009/09/21(月) 13:33:31 ID:???
>>124
そんなことはしらん
だが関連づけを追加するのが面倒なのは確かだな
129nobodyさん:2009/09/21(月) 13:51:17 ID:???
   _,,....,,_  _人人人人人人人人人人人人人人人_
-''":::::::::::::`''>   ctpに慣れていってね!!!   <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
 |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ     __   _____   ______
 |::::ノ   ヽ、ヽr-r'"´  (.__    ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_  _,.ヘーァ'二ハ二ヽ、へ,_7   'r ´          ヽ、ン、
::::::rー''7コ-‐'"´    ;  ', `ヽ/`7 ,'==─-      -─==', i
r-'ァ'"´/  /! ハ  ハ  !  iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ レリイi (ヒ_]     ヒ_ン ).| .|、i .||
`!  !/レi' (ヒ_]     ヒ_ン レ'i ノ   !Y!""  ,___,   "" 「 !ノ i |
,'  ノ   !'"    ,___,  "' i .レ'    L.',.   ヽ _ン    L」 ノ| .|
 (  ,ハ    ヽ _ン   人!      | ||ヽ、       ,イ| ||イ| /
,.ヘ,)、  )>,、 _____, ,.イ  ハ    レ ル` ー--─ ´ルレ レ´
130nobodyさん:2009/09/21(月) 17:03:46 ID:???
ctpを絶対許さない
131nobodyさん:2009/09/21(月) 23:10:34 ID:???
ふ CTP懐かしいぜ
あいつ元気にやってっかな
132nobodyさん:2009/09/22(火) 00:05:44 ID:???
thtmlのこともたまには思い出してあげてください
133nobodyさん:2009/09/22(火) 01:53:07 ID:???
http://book.cakephp.org/ja/
ここの検索って機能してなくね?
入力しても何も表示されないんだが
134nobodyさん:2009/09/22(火) 02:17:06 ID:???
ClassRegistry
シングルトン用オブジェクトコンテナっぽいけど
なんで説明ないの?
135nobodyさん:2009/09/22(火) 04:33:15 ID:???
アプリ用のオリジナルの設定ファイルをcore.phpから分離したいんだけど
どうするのが定石ですか?
136nobodyさん:2009/09/22(火) 06:23:24 ID:???
AppControllerに
var $ext=".ctp.php";
を定義しても、ctpを読み込みやがる。
何故?
137nobodyさん:2009/09/22(火) 06:42:02 ID:???
138nobodyさん:2009/09/22(火) 08:05:16 ID:???
>>135
bootstrap.php
139nobodyさん:2009/09/22(火) 11:33:12 ID:???
>>137
d
API&ソース見て探求していくしかないのか・・
symfonyのcontext的なものでいろいろ取り出せるのかと思ったら
viewしか入ってねー
140nobodyさん:2009/09/23(水) 03:33:59 ID:ux1l4fZg
どーしてもわからないっす・・・。
SNS的なサイトをつくる場合にログイン認証画面(auth利用)→個人プロフィールトップ画面みたいなんを作りたいんす。

色々試行錯誤したんだけど、解決方法としては
テーブルを二つ用意する。userテーブル(ログイン認証用でid,password)とprofile(個人プロフィールトップ用(誕生日とか好きなものとか))
んでもってprofileテーブルからuserテーブルにhasoneでくっつける。
でもコントローラどうやって書けばいいか・・・。
っていうか方法本当にこれでいいのかな?
誰かいい方法知ってたら教えてください!!
141nobodyさん:2009/09/23(水) 04:36:28 ID:???
>>140
cakeの使用以前なので、クダスレの方がいろいろ答えてもらえるんじゃない?
http://pc11.2ch.net/test/read.cgi/php/1229491611/
142nobodyさん:2009/09/23(水) 05:54:39 ID:ux1l4fZg
140です。
ありがとう。
使用以前ていうか、cakephpのauth使ってできるんすか?
できないなら、使わないで普通に書くんすけど。
143nobodyさん:2009/09/23(水) 06:13:29 ID:???
>>142
できます。マニュアルは読みましたか?
ttp://book.cakephp.org/ja/view/172/Authentication
あとhasOne云々はAuthとは関係ないので、問題をきちんと切り分けたほうが良いです。
今はUserモデルとAuthコンポーネントにのみ注力すべきです。
144nobodyさん:2009/09/23(水) 07:46:21 ID:???
>>140
User hasOne Profile な関係にして
UserモデルとUsersControllerでやるといい
ProfilesControllerは不要
145nobodyさん:2009/09/23(水) 15:10:04 ID:ux1l4fZg
140です。
皆優しいっすね・・・。あれ、ちょっと涙が・・・。(笑)
>>143さん
ありがとう。読んでみます。

>>144さん
ありがとう。
ただ、USERモデルを作ったらはまったんすよ。
ID,pass合ってるのにログインできなかったりして。
auth使った場合、Userモデルは作らないって別の本にも書いてあったし。
146nobodyさん:2009/09/23(水) 15:17:56 ID:???
パスワードの暗号化かんれんじゃねーの?

とりあえず、チュートリアル系で一からやってみて、
動いてから自分のやりたい事やりなよ
問題の切り分けがしずらいし聞きたいこともわからん
147140です。:2009/09/23(水) 21:12:19 ID:ux1l4fZg
みなさんこんばんは。

とりあえずは解決?しました。

結論としては・・・
add,editloginで送るときのid,username,passwordとかがずれてました。

bakeを使ったから間違えた?ということで、今回はbakeのせいにして、これからは使いません。

本当お世話になりました☆
またよろしくお願いします!!
148nobodyさん:2009/09/23(水) 21:19:49 ID:???
あほや
自分のミスをフレームワークの所為にして
便利さを犠牲にする。愚の骨頂
149140です。:2009/09/23(水) 21:23:50 ID:ux1l4fZg
>>146さん
ありがとうございます。
それも原因のひとつでした。
パスワードはaddアクションから登録したハッシュ化されたものでないとログインできなかったす。
(テーブルに打ち込んだハッシュ化してないパスワードはだめでした。)

ただ、まあそれはいいとして、編集するときにパスワード欄が
●●●●●●●●●●●●●●●●●●●●●●●みたいに
めっちゃ長くなってて、ちょっとださいんだけど、これくらいは目つぶるべきですかね?
入力されたものと同じ文字数で●●●●●て出せるんですか?
150nobodyさん:2009/09/23(水) 21:26:44 ID:???
いろんな人が通ってる道だ
ググレかす

あとそれで編集実行したらログインできなくなるぞ
151140です。:2009/09/23(水) 21:29:51 ID:ux1l4fZg
148さん
ども!
おれはcakephp使わないって言ってないっすよ?
つかこれからも素人なりにガンバりますよ!

ただ!
bakeは使わないかも!
bakeって最初がちょっと楽できるだけなんじゃないすか?
それとも本当の便利さにおれが気づいてないんすか?
152140っす:2009/09/23(水) 21:34:17 ID:ux1l4fZg
150さん
どーもご親切にあざーっす!
ちょっとイラっとしたけどおっしゃるとおり!!
153nobodyさん:2009/09/23(水) 21:36:07 ID:???
bakeがなきゃ俺はrailsに逃げるね
全てのMVCを一から手書きするのはおれはやだ
骨組作ってもらってから編集していきたいね。
ま、好きにすればいいけどね

重大なのはそれより、
ろくに調べもせずに
「bakeがおかしいからbake使わないでいーや」
って心構えでコーディングなんかしてるとどのみち後々痛い目見る

問題を切り分け
一つ一つつぶし
同じ過ちを繰り返さない

プログラマとして最低限必要でしょ
154nobodyさん:2009/09/23(水) 21:39:40 ID:???
155140っす:2009/09/23(水) 21:49:09 ID:ux1l4fZg
感謝っす!
考え甘かったすわ。
肝に命じて進めていきますわ。
156nobodyさん:2009/09/23(水) 21:59:46 ID:???
bakeはbakaしか使わないって言うしな
157nobodyさん:2009/09/23(水) 23:32:04 ID:???
bakeとハサミは使いよう。
158nobodyさん:2009/09/24(木) 01:31:26 ID:???
bakeに刃物
159nobodyさん:2009/09/24(木) 03:11:55 ID:L477CAe5
helperの中から他のhelperを呼び出すにはどうしたらいいですか?
160nobodyさん:2009/09/24(木) 08:04:26 ID:???
>>159
$helpersにHelperを指定して $this->Html->link のように使う
161nobodyさん:2009/09/24(木) 15:25:58 ID:???
>>122
Cake3では拡張子はphpになるみたい
162nobodyさん:2009/09/24(木) 22:48:37 ID:???
>>160
ありがとうございました
163nobodyさん:2009/09/24(木) 23:58:41 ID:???
bakaもbakeも使いよう。
164nobodyさん:2009/09/25(金) 00:18:25 ID:???
遅いうえにつまらん
もうくんな
165nobodyさん:2009/09/25(金) 00:27:33 ID:???
ヘルパーが関数ではなくオブジェクトなのは
Cakeの特徴の一つですが
複数のクラスの中で同じヘルパーを使う時、
ヘルパーのインスタンスは同じなのでしょうか?
それとも、インスタンスが毎回作られるのでしょうか?
166nobodyさん:2009/09/25(金) 12:12:36 ID:???
Cake3は、Cake1.0→Cake1.2の時の変更より激しい変更があるのでしょうか?
167nobodyさん:2009/09/25(金) 12:34:20 ID:???
そらあるだろ
その前にCake2も今つくってんだし
168nobodyさん:2009/09/25(金) 17:06:34 ID:???
>>165
ってどういうこと?Viewは一個だからHelper読み込みは1個ですよね通常。
Modelとかで強引に読み込んだらnewするわけだからインスタンス作るわけですよね

ちょっとわからんです。
169nobodyさん:2009/09/25(金) 17:49:56 ID:???
helper内で他のhelperを使ったりしますよね
あとelementsやlayoutsごとにviewインスタンスは生成されるのでは?
そのように共有されるものなので
helperを一元的に管理するファクトリのようなものがあって
同じ種類のhelperを複数作らないようにしてるのかなーと思ったのです
170nobodyさん:2009/09/25(金) 20:02:24 ID:???
modelと関係ないフォームのバリデーションはどうしたらいいですか?
171nobodyさん:2009/09/25(金) 20:21:44 ID:???
var $useTable = false;
なモデル用意してバリデーションルール書けばいい
172nobodyさん:2009/09/26(土) 02:51:00 ID:???
>>171
ありがとうございました
173nobodyさん:2009/09/26(土) 05:31:21 ID:Z4zintKr
modelのvalidates()で得たエラーメッセージって
自分でinvalidFields()で取得して、viewに渡さないといけないのでしょうか?
174nobodyさん:2009/09/26(土) 05:53:58 ID:???
formヘルパー
175nobodyさん:2009/09/26(土) 11:43:59 ID:???
MVCのModelは通常ビジネスロジックを記述するものだと思うのですが、
CakePHPではModelはORマッピングの為にDBのテーブルを
クラスで表現したものとしていますよね。
Modelっていったい何???
176nobodyさん:2009/09/26(土) 11:48:27 ID:???
うん、過去ログでもよんでろ低能
177nobodyさん:2009/09/26(土) 11:53:18 ID:???
> CakePHPではModelはORマッピングの為にDBのテーブルを
> クラスで表現したものとしていますよね。

いいえ違います。ビジネスロジックを記述するモデルの
開発を加速する為に、DBのテーブルに対応するような
規約になっているだけです。

それが嫌なら、テーブルと関係ないModelを作ることも可能です。
が、レールの上に乗っかった方が速い開発が出来るでしょう。
178nobodyさん:2009/09/26(土) 13:23:17 ID:???
モデルの中でページャー使えないん?
count()しないでSQL_CALC_FOUND_ROWS使ってくれないん?
179nobodyさん:2009/09/26(土) 16:03:41 ID:???
うん、過去ログでもよんでろ低能
180nobodyさん:2009/09/26(土) 16:37:57 ID:???
cakeで最終的にどのようなSQL文が実行されたのか
ログに保存したいのですが、方法があれば教えてください。
181nobodyさん:2009/09/26(土) 17:12:39 ID:???
DebugKit使いなよ
それがいやなら自分で$this->log();しまくれば
182nobodyさん:2009/09/26(土) 23:39:27 ID:???
>うん、過去ログでもよんでろ低能
大した指摘もできねー能無しがほざくな。
183nobodyさん:2009/09/27(日) 04:22:51 ID:???
組み込みバリデーションルールの
デフォルトのエラーメッセージを設定したいのですが
どうやれば実現できますか?
184nobodyさん:2009/09/27(日) 04:39:53 ID:NXHVEZh/
paginatorってurlでlimit指定するとコントローラーのオプション指定を無視して
urlで指定したほうが有効になっちゃうんだけど
これってまずいんじゃないかと思うんだけどどうなんだろう?
185nobodyさん:2009/09/27(日) 12:49:50 ID:???
>>183
うん、過去ログでもよんでろ低能

$validate = array(
 'ruleName' => array(
)
);
186nobodyさん:2009/09/27(日) 12:53:22 ID:???
とちゅうでかきこんじまった

○モデルのバリデーションルールで定義

var $validate = array(
'fieldName' => array(
'ruleName' => array(
'rule' => 'notEmpty',
'message' => 'からっぽですぜ'
)
),
);


○viewで上書き
<?php
echo $form->input('fieldName', array(
'error' => array(
'ruleName' => 'からっぽじゃん!!'
)
));
?>
187nobodyさん:2009/09/27(日) 20:17:23 ID:???
>>185-187
ありがとうございます。
ただエラーメッセージの指定がしたいのではなくて
デフォルトのエラーメッセージの指定がしたいんです。
同じルールを設定するのに、毎回同じエラーメッセージを指定するのはダサいので・・
188nobodyさん:2009/09/27(日) 20:25:14 ID:???
なるほど

記憶の片隅にあったので↓の人参考にしてみたら?
http://d.hatena.ne.jp/ngtn/20080323/1206281439
189nobodyさん:2009/09/29(火) 09:19:11 ID:???
>>180
フォーラムの情報を参考に作りました。
もっとスマートにやっている方がいたら教えてください。
<?php
uses ('model' . DS . 'datasources' . DS . 'dbo' . DS . 'dbo_mysql');
class DboMysqlEx extends DboMysql {
var $exeQueryCount = 0;
function execute($sql) {
$return = parent::execute($sql);
$GLOBALS["sqlLog"][++$this->exeQueryCount] = array(
"query" => $sql,
"error" => $this->error,
"affected" => $this->affected,
"numRows" => $this->numRows,
"took" => $this->took
);
$GLOBALS["lastSql"] = array(
"nr" => $this->exeQueryCount,
"query" => $sql,
"error" => $this->error,
"affected" => $this->affected,
"numRows" => $this->numRows,
"took" => $this->took
);
return $return;
}
}
?>
190nobodyさん:2009/09/30(水) 16:22:46 ID:???
アソシエーションされたモデルにくっつけたbehaviorのcallbackを通らない問題は解決する気ないんだろうか。
いつもこれに悩まされる。

https://trac.cakephp.org/ticket/2056
191nobodyさん:2009/09/30(水) 22:27:51 ID:???
Paginatorで1ページあたりの表示数をコントローラの$this->paginateで指定してたのですが、
$this->paginateでの指定よりもurlで/limit:5000と指定したほうが優先されてしまうのは仕様なんでしょうか?
結局$this->paginateでの指定を諦めて$this->passedArgs['limit']で指定しているのですがみなさんはどうしてますか?
192nobodyさん:2009/09/30(水) 22:34:25 ID:???
チュートリアルで作成したブログにタグ機能を実装するチュートリアル - 「最果て」の支部
http://d.hatena.ne.jp/nori0620/20071123/1195801255
『CakePHP』を使ってみる 〜10〜 タグ機能を作ってみる - ざ・わーるど.jp@はてな
http://d.hatena.ne.jp/theworldjp/20080306/1204812552

この辺を参考にタグ機能を実装しているのですが、中間テーブルのposts_tagsテーブルにデータが入らないくて困っています。
アソシエーションが正しく設定されていて、$this->data['Tag']['Tag']にtag_idの配列が入っていれば
$this->Post->save($this->data)したときに同時にposts_tagsテーブルにデータが入るのでしょうか。
どちらの例でもposts_tagsテーブルに対する直接の操作が書かれていないので、本来どのタイミングで
posts_tagsテーブルにデータが入るのかわからず、問題のある場所が突き止められない状況です。
193192:2009/09/30(水) 22:37:38 ID:???
>>191
自分の場合は$this->paginateの第三引数でホワイトリストを指定しています。
URLのパラメータでlimitがいくらでも変えられてしまうと言うのは気持ちが悪いので。
194nobodyさん:2009/09/30(水) 22:49:47 ID:???
>>193
そんな指定が出来たんですね・・・わからなかった俺涙目orz
レスありがとうございます
195nobodyさん:2009/10/01(木) 05:27:32 ID:???
>>189
阿呆か
毎月給料遅配ばかりならその言い草も成り立つかもしらんが
きちんと給料を頂戴しているんだろ?残業代が出ないだけだろ?

何で残業代が出ないか胸に手を当てて考えろよ。経営者の期待に応える仕事ができたのか?

野球選手が契約更改で
「確かに去年は打率1割5分、ヒットより併殺打のほうが多く、守っては3試合に1回は失策をしましたが、
練習では毎日一番早くから一番遅くまでバットを振っていました。
年俸2割アップを要求します。」
なんて言えば嗤われるだけだろ。
野球という特殊技能を持ち、ある程度お客様を選べる立場の選手でもそうなのに、
いくらでも代わりがいる普通の社員が仕事もせずに遅くまで会社に残っていたから残業代を払えって?
一つ教えてやろう、世間ではお前みたいな奴を
糸合 米斗 シ尼 木奉
と言うのだよ。
196nobodyさん:2009/10/01(木) 05:53:48 ID:???
>>195
盛大に誤爆しすぎw
197nobodyさん:2009/10/01(木) 11:01:46 ID:???
でも、やっぱり残業代欲しいよねw
198nobodyさん:2009/10/01(木) 11:27:52 ID:???
cronでshellを動かすと、
Warning: mysql_connect(): Can't connect to local MySQL server
って出ちゃうんだけど、ウチの環境だけかなぁ。。

ターミナルからの直打ちはちゃんと動く。
199nobodyさん:2009/10/01(木) 11:32:01 ID:???
>>193
なにそれ初耳
200nobodyさん:2009/10/01(木) 12:05:10 ID:???
一覧で次へ前へではなく、
個別記事(action/view/id)なページで次の記事、前の記事ってどうやって実装するんですか?
201nobodyさん:2009/10/01(木) 13:28:37 ID:???
>>200
find('neighbors')でいいんじゃないの? スペル覚えられねえけど。
202nobodyさん:2009/10/01(木) 18:16:04 ID:???
saveAllのfieldListってモデルの指定はできないのん?
fieldList => array('User.username', 'Profile.name')
↑これだとダメだった
203nobodyさん:2009/10/01(木) 21:48:31 ID:???
authコンポーネントで
$this->Auth->allow('index','show');

とやれば index と show はログインしていなくても実行できますよね。

逆に基本全て実行できて、ログインしないと実行できないものを指定するってできるの?
204nobodyさん:2009/10/01(木) 22:33:03 ID:???
205nobodyさん:2009/10/02(金) 00:21:35 ID:???
>>201
あーそれですね
paginateで用意されてると思ってその辺ばかり見てました。
あざっす!!
206nobodyさん:2009/10/02(金) 20:15:27 ID:???
>>204
ありがとうございます。*で指定して deny 使えば良いんですね。
authコンポーネントって コントローラーをまたぐと認証が切れますけど、これは仕様なんですか?

全部のコントローラー、モデルをまたいでも認証を継続したままにしたいんですが、
方法はありますでしょうか。
207nobodyさん:2009/10/02(金) 20:32:15 ID:???
できる

おまえもう死んでこい
調べもしないで全部人に聞くのかよ
マニュアル読んだほうが100倍効率いいぞ
208nobodyさん:2009/10/02(金) 21:59:16 ID:???
>>207
ありがとうございます。もう一度調べてみます。
209192:2009/10/02(金) 22:05:08 ID:???
>>192が自力で解決できたようなので、書いておきます。

どうやら$this->data['Tag']['Tag']にtag_idを配列で突っ込んでおくと
$this->Post->saveしたときに同時に中間テーブルにデータが入るようです。

http://www.okushin.co.jp/kodanuki_note/2008/10/cakephphasandbelongstomany.html
この記事を読んでいて判明。
210nobodyさん:2009/10/03(土) 10:19:20 ID:???
>>209
アソシエーションをきっちり書いてないとうまく行かないから
ネーミングルール無視して作ってるときとか気をつけてね
211nobodyさん:2009/10/03(土) 11:16:31 ID:???
>>210
そうですね、>>209のような簡素な書き方だと命名規則を守る必要がありそうです。
逆に>192の例だと、どちらも命名規則を守っているのに、(一応?)joinTableやらforeignKeyの設定しているようです。
212nobodyさん:2009/10/03(土) 12:17:22 ID:???
コントローラ内で
debug($this->Session->id,false,true);
とセッションIDを表示しようとしているのですが、空です。

View内で
echo $session->id();
と書くとキチンとIDは表示されます。

コントローラ内でセッションIDを取得するにはどうしたらいいのでしょうか??
213212:2009/10/03(土) 12:39:27 ID:???
コントローラ内でSessionHelper呼び出せばいいだけの話だけど、
できればHelper使わず取得したいのです
214nobodyさん:2009/10/03(土) 16:10:20 ID:???
$_SESSION
215nobodyさん:2009/10/03(土) 16:28:58 ID:???
>>214
ありがとうございました。
session_id()で取ればいいですね。
普通のPHPの処理で考えればよかったですね。
216nobodyさん:2009/10/03(土) 19:15:55 ID:qJkUBPIa
bakeについての質問です。
アソーシエーションを設定する場合、同じ項目で設定を聞かれる場合、
両立はできるんですか?またする意義はどういう場合にあるんですか?
たとえば・・・

user hasmany friend?(y/n)
→yを選択

user hasone friend?(y/n)
さっきhasmany選択したんだけど・・・hasoneを選択したらどうなるのか?
なんか意味あるのか?

217nobodyさん:2009/10/03(土) 20:26:26 ID:???
やってみりゃいいじゃん
hasOneなのかManyなのかは自動で判断できないから
作ってる本人にどっち?って聞いてるんでしょ
218nobodyさん:2009/10/03(土) 22:28:09 ID:???
ホントさやってみりゃいいじゃん。
こんなのパッパと自分でやって比較すればいいじゃねえか。
こういう焦れったいやつっているよなあ。
219nobodyさん:2009/10/04(日) 03:12:06 ID:???
>>212
Session->id()
だととれないか?
220nobodyさん:2009/10/05(月) 23:23:32 ID:???
CakeMaturi参加する人いる?
221nobodyさん:2009/10/05(月) 23:47:38 ID:???
>>220
行きたいけど、金を払ってまでというのはな…
無料の勉強会とかの方がいいや
222nobodyさん:2009/10/06(火) 10:10:50 ID:???
>>221
パーティが催されるんだぜ。
223nobodyさん:2009/10/06(火) 11:55:43 ID:???
ケーキ食い放題?
224nobodyさん:2009/10/06(火) 12:17:06 ID:???
たかいな・・・
225nobodyさん:2009/10/06(火) 14:38:47 ID:???
けど行ったらmasa-pに会えるんだぜ
226nobodyさん:2009/10/06(火) 14:57:03 ID:???
本気でちょっと高い・・
227nobodyさん:2009/10/06(火) 15:08:34 ID:???
ダイエット中なんだ
虫歯になるの嫌だし
228nobodyさん:2009/10/07(水) 11:34:25 ID:???
bakerたちのCakeが食べ放題なのか。バイキング形式かな。
229nobodyさん:2009/10/07(水) 11:56:22 ID:???
つーか滑ってるよキミたち
230nobodyさん:2009/10/07(水) 12:43:59 ID:???
Matsuriの告知文、日本人が英文化したの?
優しくていいけど、社内告知みたいで少し寂しいね

ところで、本当に高いね。
カンファレンスは、英語オンリーじゃないらしいけど、英語率高そう!
チケット高いは、英語率高いでは、数少ない友人誘っても誰も連れ立って来てくれなそう...
行きたいけど、怖いから行けない
231nobodyさん:2009/10/07(水) 15:36:53 ID:???
ツアコンが連れ立ってパックツアーみたいなの企画したらいけそうだな
232nobodyさん:2009/10/07(水) 18:14:48 ID:XPDBt2vk
DB保存のsave時の質問です。

INSERTかUPDATEかは、主キーで判断して、変更したい場合はモデルの$primaryKeyを変更すればいいみたいですが、
UPDATEにする場合の条件を複数にしたい場合、
例えばメールアドレスとパスワードが一致したらUPDATEで、一致しなければINSERTみたいな処理にしたいんですが
これは可能でしょうか?

できるのであればご教授よろしくお願いします。
233nobodyさん:2009/10/07(水) 18:25:05 ID:???
その要求にかなう便利なのは用意されてないから
自前でやればいい
234nobodyさん:2009/10/07(水) 21:04:49 ID:???
>>233
ありがとうございます。
自前でやってみます。
235nobodyさん:2009/10/08(木) 12:01:55 ID:???
1.2.5 $javascript->codeBlock の引数が空だと止まるw
236nobodyさん:2009/10/08(木) 15:48:28 ID:???
>>235
第一引数が空ってありえなくね?
もちろんバグだろうが
237nobodyさん:2009/10/08(木) 16:03:23 ID:???
俺も空で読んだことないんだけど
空で呼び出すとなにかいいことがあったりするのかな?
238nobodyさん:2009/10/08(木) 16:46:16 ID:???
>>237
似たようなviewをたくさん作るときに雛形を用意していて空で書いてある。
javascriptがいらなくても残ったまま。
1.2.3の時は問題無かったけど最近1.2.5にしたらNG。
エラーを吐くわけではないので悩んだ。

239nobodyさん:2009/10/08(木) 16:48:26 ID:???
ん?運用前の開発段階に楽なようにってことか
なるほどねー
240nobodyさん:2009/10/08(木) 17:56:07 ID:???
>>238
止まる ・・・ たまにあるよね。
javascriptだけに限らず。

エラーも吐かず真っ白。
ソースを見ても <title> ほげほえ 以降は真っ白。

デバッグに時間かかるね。
241nobodyさん:2009/10/11(日) 17:50:58 ID:???
mediaプラグインで ファイルをアップロードしたい だけの場合ってどうすればいいんですか?
他のモデルにくっつけてアップする以外ないんですかね。
ソース見てもよくわからず。。

これができれば携帯からもアップロード処理できるのにぃーーー。
242nobodyさん:2009/10/12(月) 00:26:02 ID:???
どゆこと?
携帯はメールでアップしかできないんじゃないの?
243nobodyさん:2009/10/12(月) 06:58:11 ID:???
>>242
そうですね。携帯はメールでしかアップロードできません。
例えば一般的なフォームで
user テーブルに データを登録するときにファイルを一緒にアップロード という処理は

echo $this->element('attachments', array('plugin' => 'media')); をviewに読み込めば

できるんですが

それを
ファイルのアップロードのみ したい場合はどうすればいいのかなと思いまして。

他のモデルに依存せず、
ファイルアップロードのみのフォームを作ってデータを登録させたいのです。
244nobodyさん:2009/10/13(火) 00:43:52 ID:???
>>243
付属のattachmentモデルをそのまま使うのなら
attachmentコントローラーでも作ってsaveすればいいんじゃないすかね?
245nobodyさん:2009/10/13(火) 08:30:44 ID:???
>>244
それがうまくできないんですよね。
user コントローラーに attachmentモデル を直接読み込ませているんですけど。
で、attachmentモデルにsaveかけても登録できないので。

まだ時間がなくてやれてませんけど、
なので userviewのエディット画面に id を hidden で渡してアップロードフォームを作ってみようかなと
思っています。

にしてもmediapluginは情報が少ないですよね。
僕はいいライブラリだと思ってるんですが・・・。
あまり評価されていないんですかね。
246nobodyさん:2009/10/13(火) 23:17:55 ID:???
自宅サーバにCakePHP1.2、PHP5.2.9という環境で開発しているのですが
日本語が文字化けしていて困っています
文字コードは全てUTF-8に統一しており、XML宣言やMETAタグの中はUTF-8と
ちゃんと記述されているのですが、ブラウザ側でEUC-JPに解釈されてしまって
文字化けしてしまいます。ブラウザ側で手動でUTF-8に指定するとちゃんと見れます。

viewsの(例えば)index.ctpにHTMLとして日本語を書いても化けてしまいます

何が原因なのか教えていただければありがたいです
247nobodyさん:2009/10/13(火) 23:27:14 ID:???
わからんけどConfigure::write('App.encoding')は?
それから、ブラウザ何個か試してどれでもそうなる?
248nobodyさん:2009/10/13(火) 23:41:27 ID:???
>>246
database.phpにencoding=utf8を入れた?
249nobodyさん:2009/10/14(水) 00:24:00 ID:???
>>247-248
おまえら呆れるほど親切な。
250nobodyさん:2009/10/14(水) 02:10:30 ID:hSMBoxY0
>>246
出力自体は正しくてブラウザの認識が間違ってるから、たぶんtitleタグの後に文字コード指定してるんじゃね?
251nobodyさん:2009/10/14(水) 04:41:13 ID:???
apacheの設定
252nobodyさん:2009/10/14(水) 13:09:20 ID:???
アソシエーションされたモデルのビヘイビアはコールバック呼ばれない
これは糞仕様としか言いようがない。
253nobodyさん:2009/10/14(水) 16:04:02 ID:???
ちゃんとティッシュとハンカチ持った?
254nobodyさん:2009/10/14(水) 23:54:42 ID:???
たまにトイレットペーパーが有料の公衆あるよね
255nobodyさん:2009/10/15(木) 10:04:12 ID:???
>>254
外で100円で流せるティッシュ買うんじゃなくて?
256nobodyさん:2009/10/15(木) 10:20:40 ID:???
新宿東口改札のは有料だな
入ったことないかどういうシステム化は知らんけど
257nobodyさん:2009/10/15(木) 15:42:13 ID:???
おまえら、ウ●コの話にマジレスしないでいいよw
258nobodyさん:2009/10/15(木) 17:50:40 ID:???
cakephp 1.1 と cakephp 1.2 って最初っからプログラムを作り直しているのかな?
もちろん使える部分はそのまま使うんだろうけど。

どうなんでしょ。教えて下さい。
259nobodyさん:2009/10/15(木) 18:45:46 ID:???
cakephp フレームワーク自体のこと?
cake1.1の上で作ったアプリを1.2にアップグレードする際の話?
どっちにしてもフルスクラッチはない
260nobodyさん:2009/10/15(木) 18:50:49 ID:???
1.1.x->1.2.xは拡張でしょ
2.xはほとんど一からじゃない?
261nobodyさん:2009/10/15(木) 20:27:44 ID:???
>>259
cakephp フレームワーク自体のこと です。

>>260
拡張なんですかー。


ありがとうございました!
262nobodyさん:2009/10/16(金) 12:18:40 ID:???
Cake2.xを業務とかに使っている方っていますか?
263nobodyさん:2009/10/16(金) 12:37:24 ID:???
います
264独身男32歳:2009/10/16(金) 23:56:32 ID:???
>>263
紹介して下さい
265nobodyさん:2009/10/17(土) 10:33:23 ID:???
僕の会社で2サイトほど構築しました^w^
266nobodyさん:2009/10/17(土) 11:39:57 ID:???
業務レベルの完成度なのか?
ちょっと試してみたいな
267nobodyさん:2009/10/17(土) 11:47:23 ID:???
>>266
なにを持って業務レベルと言うのか教えていただきたい。
煽りじゃなく今後の参考として。
268nobodyさん:2009/10/17(土) 15:03:12 ID:???
>>267
266じゃないけど少なくともcakephp1.1は業務レベルだとは思わなかった。
理由・重すぎ。
269nobodyさん:2009/10/17(土) 23:40:18 ID:???
>>268
APCでも入れておけ
270nobodyさん:2009/10/18(日) 01:00:38 ID:???
>>267
定義づけしろと言われると難しいな
セキュリティや負荷問題などに明るい人が、「cake2を導入して開発することによってcake1よりも
開発効率が上がったり運用コストが下がるなどのメリットがある」と判断するレベルということなんだろうか。
俺はセキュリティとか負荷には弱いので他人の意見に頼るしかないんだけど。
セキュアである程度軽い、大きな仕様変更が予測されない、というのが業務レベルと呼べる必須条件な気がする。
271nobodyさん:2009/10/19(月) 22:33:13 ID:???
小規模なものでもFW使っているのですか?
ファイルがたくさん増えて逆に面倒かと思うのですが。
pearとかPECLとか何を使うか習得すべきかわからなくなってきた
272nobodyさん:2009/10/19(月) 23:09:54 ID:???
>>271
ファイルはたくさんだけど、どうせいじるのはMVCくらいだし。
今は簡単なツールでさえCake使ってるわ。
1から書く手間を考えたら、Cakeの初期設定やった方が早いし簡単。
273nobodyさん:2009/10/19(月) 23:29:10 ID:???
>>271
ああ、小規模なものは直接自分でちゃちゃっと書いた方がいいことがよくある。
でも時間に余裕があるなら練習としてCakeでやってみるのも悪くない。
274271:2009/10/20(火) 00:09:35 ID:???
作っていてDB接続はなにでするべきかなどで悩んでしまいます。
意外と触るファイルは多くないのですか。
できればライブラリなどは使用したくないのでFWで対応できるなら理想的です。
cakeやってみたいと思います。
275nobodyさん:2009/10/20(火) 21:43:59 ID:RAVGwnC1
htmlヘルパーのlink()について質問です。

今「cakephpによる実践webアプリケーション開発」で勉強してるんですけど、
<li><?php echo $html->link(__('Weeky', true), array('controller'=>'schedules', 'action'=>'index', 'id'=>'week', date('Y/m/d',$times['from_time'])));?></li>
<li><?php echo $html->link(__('Monthly', true), array('controller'=>'schedules', 'action'=>'index', 'id'=>'month', date('Y/m/d',$times['from_time'])));?></li>
<li><?php echo $html->link(__('Daily', true), array('controller'=>'schedules', 'action'=>'index', 'id'=>'day', date('Y/m/d',$times['from_time'])));?></li>
っつーところがあるんですが、

link()のarrayの
controller=>・・・
action=>・・・
があるのはいいんですけど、
id=>・・・
って何の為にあるんですか?
こういう場合、どこにid=の指定先があるんですか?

色々ぐぐったりしてもid指定がそもそもわからなかったので、どなたか教えてください。
276nobodyさん:2009/10/20(火) 22:27:04 ID:???
何が知りたいのかわからんが。。。

Router::urlを使ってるんだけど
/:controller/:action/:id/
っていう文字でわたすか、
array(
'controller'=>':controller',
'action'=>':action',
'id'=>':id'
)
ってわたせる。

で、これでもわかんなかったら何にもわかってないはずだから一からマニュアルよみな

↓こういうのもあるで
http://api.cakephp.org/class/router#method-Routerurl
277276:2009/10/20(火) 22:30:12 ID:???
ん?つーかID??

ごめん、
array(
'controller'=>':controller',
'action'=>':action',
'day'
)
で普通渡すような。。。
278nobodyさん:2009/10/21(水) 12:37:32 ID:???
idもOKでは?
279nobodyさん:2009/10/21(水) 16:53:30 ID:+lxCFMv1
>>275
せめて何ページ目か書いてくれないと、手元にある本でもどこの話なのかわからん
あとその本、入門としてはレベル高いから他の本の方がいいかもよ
280275:2009/10/21(水) 19:52:23 ID:IsADHLgB
>>279
47p一番下です。

>>277
http://api.cakephp.org/class/router#method-Routerurl
みたけど、すんません、idに関する記述がなくて、ようわからんす。

自分が知りたいのはid=>が、そもそも指定可能なものなのか?
(まあ可能だから使ってるに決まってるんですが、説明がないし・・・)
idの指定先はどこにあるんか?
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1873&forum=5
こっちで聞いてみまーす。
最初からこっちで聞けばよかったね。
皆さん面倒かけてすいません。&レスありがとう。
281nobodyさん:2009/10/21(水) 19:56:31 ID:???
おまえは何を言っているんだ?
282nobodyさん:2009/10/21(水) 20:23:59 ID:???
>>280
見てみた、確かに書いてあるね>>275の状態になるのはp57みたいだけど
schedules controllerには
functino index ($scope = 'week')
って書いてあるし、>>277のやり方の法が一般的だろうし、なんでidとして渡してるのかわからん
その後idとして利用している様子もないし

何がやりたいのかわからんけど、とりあえずidの存在は気にしなくていいと思うぞ
283nobodyさん:2009/10/21(水) 20:29:57 ID:???
というかid=で渡したことなんてないな
bakeが吐き出すのも>>277だったと思う。
渡せるのか?
284275:2009/10/22(木) 02:01:22 ID:cfsY/jT4
>>282,283
むちゃくちゃ気になってたんで助かりました!
ほんまありがとうございました★
285nobodyさん:2009/10/23(金) 11:01:57 ID:???
hasManyなデータをbeforeSaveで作っても保存出来ないんだね。
一日ハマった。
286nobodyさん:2009/10/23(金) 13:08:45 ID:???
before系の整形をするといくつかのメソッドで不具合出ることありますね
countとか
287nobodyさん:2009/10/23(金) 17:15:32 ID:???
卑怯
288nobodyさん:2009/10/23(金) 22:48:58 ID:???
1.3って1.2から相当変わるの?
1.1から1.2ほどの変化はないと思っていいのかな
クエリーキャッシュに期待
289nobodyさん:2009/10/24(土) 18:18:01 ID:???
Cakeオワタ。。。
290nobodyさん:2009/10/24(土) 20:48:46 ID:???
なにかあったん?
291nobodyさん:2009/10/24(土) 21:54:12 ID:???
update時に$this->data['model']['password'] が暗号化されない。どうすればいいの?
292nobodyさん:2009/10/24(土) 21:57:08 ID:???
AuthComponentでも使っているの?
293nobodyさん:2009/10/24(土) 22:01:17 ID:???
>>292
使ってます.コードはこんな感じです.

userコントローラ
function edit() {
$this->User->id = $this->Auth->user('id');
if(empty($this->data)) {
} else {
$this->User->set($this->data);
if($this->User->validates()) {
if($this->User->save($this->data, true, array('email', 'password')))
$this->flash('modified', '/');
}
}
}
294nobodyさん:2009/10/24(土) 22:08:48 ID:???
AuthComponent の hashPasswords メソッドを見る限りでは、

$this->data['model']['password'] と $this->data['model']['username'] に値がセットされていないと暗号化されないみたいね
295nobodyさん:2009/10/24(土) 22:09:52 ID:???
そそ
自前でAuth->hashPasswordだったけか?を通す必要がある
296nobodyさん:2009/10/24(土) 22:36:24 ID:???
>>294,295

$this->data[?User?][?username?], $this->data[?User?][?password?]
どちらも設定したけど暗号化されない。どうすればいいんだろう。
  function edit() {
    $this->User->id = $this->Auth->user(?id?);
    if(empty($this->data)) {
    } else {
      $this->User->set($this->data);
      if($this->User->validates()) {
        $this->data[?User?][?username?] = $this->Auth->user(?username?);
    $this->Auth->hashPasswords($this->data);
    pr($this->data);
        if($this->User->save($this->data, true, array(?email?, ?password?)))
          $this->flash(?modified?, ?/?);
      }
    }
  }
297nobodyさん:2009/10/24(土) 22:41:13 ID:???
298295,297:2009/10/24(土) 22:44:12 ID:???
つか>>296
dataにいれてhashPassword通してみたのね
でも、だったらreturnで戻ってくるからそれ受け取らなきゃ
参照で受け取って書き換えてくれるとかじゃあないよ

http://api.cakephp.org/view_source/auth-component/#line-847
299nobodyさん:2009/10/24(土) 22:45:11 ID:???
>>294, 295, 297
ありがとう。解決しました
function edit() {
$this->User->id = $this->Auth->user('id');
if(empty($this->data)) {
} else {
$this->data['User']['password'] = $this->Auth->password($this->data['User']['password']);
$this->User->set($this->data);
if($this->User->validates()) {
if($this->User->save($this->data, true, array('email', 'password')))
$this->flash('modified', '/');
}
}
}
300nobodyさん:2009/10/24(土) 22:46:17 ID:???
>>298
ありがとう
301nobodyさん:2009/10/25(日) 00:02:21 ID:???
ベーシック認証をかけたくてSecurityコンポーネントを使ってるんですが

function beforeFilter() {
$this->Security->loginOptions = array('type'=>'basic');
$this->Security->loginUsers = array('id'=>'pass');
$this->Security->requireLogin('index');
parent :: beforeFilter();
}

を書いてるんだけど、ベーシック認証にはなって、IDとパスワードを入れても何度も何度も
入力させられます。ちなみに、parent :: beforeFilter();を消しても同様に入力させられます。

どうしたらよいでしょうか。教えて下さい。お願いします。
302nobodyさん:2009/10/25(日) 00:08:41 ID:???
301
ちなみに、 loginUsers で指定した id と pass を入力しても認証していないようです。
認証をキャンセルすると $this->Security->blackHoleCallback = 'securityError'; に移動します。

そのまま設定した id と pass を入力してもダメなのでしょうか。
303nobodyさん:2009/10/25(日) 00:13:04 ID:???
そのbeforeFilterに書いた内容消したらちゃんと表示されるの?
304nobodyさん:2009/10/25(日) 00:55:00 ID:???
>>303
はい。表示されます。
ちなみにさくらサーバーを利用しています。
305nobodyさん:2009/10/25(日) 03:50:22 ID:???
コア開発メンバー数人がCakeから撤退して
Cake3をフォークするなんていうドラマチック展開が起こっています。CakeどうなるのCake
306nobodyさん:2009/10/25(日) 04:34:45 ID:???
307nobodyさん:2009/10/25(日) 05:27:27 ID:???
これか
ttp://bakery.cakephp.org/articles/view/the-cake-is-still-rising

ざっと見たところcake3の開発の人がcake3を持って出て行っちゃったって
話みたいだけど、今はcake2に向けて開発が進んでるところだから
問題ないんじゃないの?
308nobodyさん:2009/10/25(日) 05:45:03 ID:???
Cake3改めLithiumの公開マダー?
309nobodyさん:2009/10/25(日) 12:25:34 ID:???
>>304
さくらはPHPはモジュール版とCGI版があるけどどっち使ってる?
CGI版だと、動作しないよ。たしかphp的な仕様で。
310nobodyさん:2009/10/25(日) 13:02:04 ID:???
>>309
ありがとうございました!見てみたら CGIで動作していました。
他の方法を考えてみます。

ご親切ににありがとうございました。
311nobodyさん:2009/10/25(日) 14:42:28 ID:???
おつかれさまですー

困ってます助けて・・・

ショップとジャンルがあって
1つのショップは複数のジャンルが持てて、
ジャンルも複数のショップがもてるので
hamtmに結んでいるんですが、

ジャンルでショップを絞込みすると

$this->ショップ->ジャンル->findAllbyジャンルID($ジャンルID);

とすると、ジャンルと、ジャンルとショップの結合のデータしか入ってきません。
ショップIDまでは取れているのに、ショップIDの内容も取るには
なにが足りないの?(;_;わかんない・・・
312nobodyさん:2009/10/25(日) 16:40:24 ID:???
$this->Shop->find('all', array('Genre' => array('conditions' => array('Genre.id' => $genre_id))));
でやってみては?
313nobodyさん:2009/10/25(日) 18:51:56 ID:???
>>312
おお!
Shop->Genre->
ではなくて
条件で指定するのですね!!
ありがとうございます!

それにジャンルのつづりがすごい!
やっぱり2chねらー尊敬!
314nobodyさん:2009/10/25(日) 19:11:35 ID:???
??
315nobodyさん:2009/10/25(日) 23:47:50 ID:???
>>313

きもい><
316nobodyさん:2009/10/27(火) 03:36:59 ID:???
debug levelを0にしてサイトを動かしたいのですが、
debug情報をlogに吐かせたいです。$this->log等

方法を知っている方、教えてください。
317nobodyさん:2009/10/27(火) 04:31:52 ID:???
ちょっと相談よいですか?

公開されているウェブサービスを利用するために、外部のXMLを

$xml = new XML($req);

のように取得しているのですが
相手側のサーバーで503エラーなどが発生すると、404コードを吐いて止まってしまうようです

503コードを吐くようにしたいのですが
XMLクラスが継承しているクラスが多くて、手を入れるにも大変そうです
なにか良い方法ってありますか?


エラー時はXMLクラスが false などを返してくれればよいのですが…
318nobodyさん:2009/10/27(火) 05:00:04 ID:???
>>317
書いている意味がわからんが、相手サーバーのXMLを読み込んで、自分のページで表示する意味?
だったら、毎回取得せず、キャッシングするのが常識じゃないのか
319nobodyさん:2009/10/27(火) 05:31:05 ID:???
>>318

すみません
503エラーではなく、自分のコードにミスがありました

ちなみにキャッシングはもちろんしています
でも、たまたまキャッシュ更新のために取得する際に、
相手側のサーバーが落ちている場合もないとは言えませんよね

そういう場合はどうなるのでしょうか?
一応、問題は解決しましたので、もし既に調査済みの方がいれば、
教えていただけるとありがたいです
320nobodyさん:2009/10/27(火) 07:38:21 ID:???
>>316
$this->log()でええやないか
なにが聞きたいんや
http://book.cakephp.org/ja/view/159/Using-the-log-function
http://api.cakephp.org/class/object#method-Objectlog

>>319
キャッシュがなければ取得
取得できなければエラー表示
取得できればキャッシュにも保存

とか、

キャッシュは相当長くしておく(A)
キャッシュが古ければAよりは短時間のリミットで再取得
取得できなくてもキャッシュを表示

でよくない?
何が聞きたいんや
321nobodyさん:2009/10/27(火) 12:24:19 ID:???
浪速のど根性ガエル登場
322nobodyさん:2009/10/27(火) 12:57:22 ID:???
>>320
おそらくdebugフラグが0で、
debug情報をlogに吐かせたい、

とエスパー

やり方はオイラも知らんでヤンス
323nobodyさん:2009/10/27(火) 13:49:04 ID:???
logの件はこのスレだったか前スレだったかで出てたと思う。
324nobodyさん:2009/10/27(火) 18:07:07 ID:???
求人のマッチングサイトを作る場合
・一般ユーザー
・企業

の2種類のユーザーがいる場合のテーブル設計ってどうする?

今は
User テーブルに type 0 or 1
でそのほかに

Normal (一般ユーザー)
Kigyou (企業)

って分けてるんだけど。どうするのがベスト?
325nobodyさん:2009/10/27(火) 18:12:29 ID:???
知るか
326nobodyさん:2009/10/27(火) 18:16:04 ID:???
>>324
同一のモデルで良い
あとはGroupマスタ作るなりして権限管理するとか
ACL使って
327nobodyさん:2009/10/27(火) 21:58:12 ID:???
>>326
ご親切にありがとうございます。
ここでACLが出てくるのかー。

今まで聞いたことはあったけど難しそうだったので
見てもなかった。

一度勉強してみます。ありがとう。
328nobodyさん:2009/10/28(水) 02:05:14 ID:z9D0rCNP
でもそれだと、一般ユーザと企業のアカウント情報が一つのモデルに混在して大変じゃね? 更に例えば、一般ユーザも無料と有料で機能を分けるとかになった場合とか。

個人的なアイデアなんですが、ログイン用IDなどの共通項となるアカウント情報はUserモデルで管理して、一般ユーザ・企業はフラグフィールドで識別。
共通ではない、プロフィール情報などはUserProfile. CompanyProfileなど別のフィールド群のモデルに管理させるとか。
329nobodyさん:2009/10/28(水) 07:43:25 ID:???
T字型ですな
330nobodyさん:2009/10/28(水) 07:48:58 ID:???
>>328
つまり同一モデルでしょ それ
331nobodyさん:2009/10/28(水) 09:15:17 ID:???
>>324
英語とローマ字混ぜるなよ
気持ち悪いだろ?
332nobodyさん:2009/10/28(水) 10:18:17 ID:???
333nobodyさん:2009/10/29(木) 15:20:30 ID:???
みなさんありがとうございます。

>>332
翻訳して勉強してみます。ありがとうございます。
334nobodyさん:2009/10/29(木) 20:41:53 ID:???
明日はCakeMatsuri
335nobodyさん:2009/10/30(金) 00:34:16 ID:???
コードイグナイタと比べてどうですか?
336nobodyさん:2009/10/30(金) 01:03:28 ID:???
コードイイカンジ
337nobodyさん:2009/10/30(金) 15:40:55 ID:???
だいぶ悩みましたがうまくいかないので皆さんにお聞きします。

社員管理システムみたいなやつの検索画面を作ってます。
検索結果をpaginatorを使って表示していて、$paginator->sort()などでソートしたりできます。
でも、その際に検索条件を覚えていなければならないので、
$paginator->options(aa('url', $condition));
としてURLにパラメータで渡してます。

これで普通の項目はうまくいくのですが、問題は条件が日付のとき、
$form->input()でタイプをdateにして入力欄を作っていると、
各項目が配列になっていて(birthday['year']、['month']、['day']みたく)
単純に上記の方法で渡すと、urlに「birthday:Array」などとなってうまく渡せません。

このような場合はどうやってパラメータを引き継げばいいのでしょうか。
338nobodyさん:2009/10/30(金) 15:51:04 ID:???
2009-10-30
にすればいいじゃん
たしか日付はその配列形式でも動くし
ハイフンつなぎでも受け取ってくれたはず
339337:2009/10/30(金) 16:01:21 ID:???
ありがとうございます。
birthday:2009-10-30
などとurlがなるようにしてみましたが、リンクをクリックすると
Fatal error: Cannot use string offset as an array in (略)../libs/model/model.php on line 843
といったエラーになります。
340nobodyさん:2009/10/30(金) 16:08:39 ID:???
あれうけとってくれないんだ
つーかよ
だったらよ
ぶんかつすりゃいいだけだろーがよ全部聞くの?

$bunkatsu = explode('-', $hiduke);
$hidukedayooooooo = array(
'year'=>$bunkatsu[0],
'month'=>$bunkatsu[1],
'day'=>$bunkatsu[2],
);
341337:2009/10/30(金) 16:21:40 ID:???
model.php内のdeconstruct()内に教えていただいた処理を入れることでうまくいきました。
何度もありがとうございました。
342nobodyさん:2009/10/30(金) 16:51:11 ID:???
ええええええええええええええええええええええええええええええ
普通そこいじらねーよw
343nobodyさん:2009/10/30(金) 17:45:13 ID:???
>>339-342
この流れはまるで漫才。
二人そろってM1でるといいかも。
ちょっと笑った。
344nobodyさん:2009/10/30(金) 23:04:18 ID:???
いちにちめおわり
きたく
345nobodyさん:2009/10/31(土) 02:15:30 ID:???
そんなことより、WEB案件は激減してるな
もうフリーでは食っていけないだろうな、優秀な営業マンとペア組まない限り
346nobodyさん:2009/10/31(土) 04:56:08 ID:???
>>345
M1狙ってるのか?
347nobodyさん:2009/10/31(土) 14:37:22 ID:???
今までが誰でも儲けられたんでしょ。
これからはスキルの高い奴しか生き残れない。
348nobodyさん:2009/11/01(日) 05:01:59 ID:???
もうWEBシステム開発だけで、くっていける時代は終わった
自分でコンテンツ運営しての2本柱での収入がないとダメだ
349nobodyさん:2009/11/01(日) 06:01:11 ID:???
そっちの柱をちゃんと柱にするのは大変そうだな
350nobodyさん:2009/11/01(日) 11:48:46 ID:???
>>348
同感。俺は3年前に独立したんだけど、それからずっと自分のコンテンツ運営で食ってる。
例えばmixiの全くマネをすれば一人食えるくらいは稼げる。
自分の運営で食えると、人のサイトを作る気しなくなるよ。
でもcakephpの開発だったらいけそうじゃない?
たまに外注にだしちゃおーかって思うけど、そういうときってcakephpのコミュニティで活躍してる人に
お願いしたくなるよね。
351nobodyさん:2009/11/01(日) 18:03:14 ID:???
cakephpでもなんでもだが
案件がおそろしいほど激減&低単価になってる
各マッチングサイトみても、そんなかんじだし
同業者にお仕事下さいと営業しても、ほど仕事はない
どこも案件を取るのに必死なんじゃないかと思う
もしくは、今までがバブルすぎたのか
こんなもんじゃなく、まだまだ案件がなくなっていくのか
352nobodyさん:2009/11/01(日) 18:04:08 ID:???
おれは山ほどあるが
353nobodyさん:2009/11/01(日) 18:05:58 ID:???
おそろらくWEB案件は2005年がピークで少しずつ減っていき
今年から急降下している
354nobodyさん:2009/11/01(日) 18:09:29 ID:???
findjobも求人募集件数がへってる
最近、旬なのがFlashできる人間だが
人材欲しいという需要はあるが、php技術者よりは安く雇おうとする傾向にあるから
今が旬のFlashができたとしても、食えるとも限らない
355nobodyさん:2009/11/01(日) 20:44:33 ID:???
お祭り終了 乙
356nobodyさん:2009/11/02(月) 10:08:45 ID:FEV+yFlP
>>348 >>350
自分のコンテンツ運営って、もうちょっと掘り下げて解説してもらえませんか?

例えばどういったタイプのコンテンツをやって、どのような形で収入を得てるのかなど参考にしたいです。
357nobodyさん:2009/11/02(月) 10:21:05 ID:???
すれちがい死ね
358nobodyさん:2009/11/02(月) 10:46:21 ID:8b3geUjN
>>356
あほだろお前
359nobodyさん:2009/11/02(月) 11:08:31 ID:???
仕事の回ってこないフリーはアフィリエイトでもやって死んでろ
どうせお前らアフィリえいたーレベルなんだから
だいたいここはcakeのスレ。運営とか営業とかよそでやってろ低能
そんなことも切り分けれないから仕事もないんだよ
360nobodyさん:2009/11/02(月) 11:18:36 ID:???
>>356
例えばインターネッツ上の全ての情報を集めて一瞬にして欲しい情報を
検索できるサイトを作って、そこにランク式の広告を載せて広告収入を得るとかどう?
361nobodyさん:2009/11/02(月) 18:10:26 ID:???
このスレ、死ね死ね団がいる。
362nobodyさん:2009/11/02(月) 20:50:49 ID:???
たいてい愚痴のたぐいは、自分に言い聞かせてるだけだから気にするな
363nobodyさん:2009/11/04(水) 01:15:54 ID:???
フリーだと営業もしないといけないから、コーディングだけに集中できないんだよな
どこの会社も自分とこの案件とるので手一杯て感じで、下請けの仕事さえもない状況だ
WEB開発だけじゃ、まじで食ってはいけない
今、食えてる奴は、今のうちに何か収入になる柱をひとつ用意した方がいいぞ
364nobodyさん:2009/11/04(水) 01:36:38 ID:???
>>363
Authコンポーネント使えばいいよ
var $component = array('Auth');
こんな感じ
365nobodyさん:2009/11/04(水) 16:42:30 ID:???
CakePHP 1.3 alpha キタ━━━━━━(゚∀゚)━━━━━━ !!
366nobodyさん:2009/11/04(水) 17:51:45 ID:???
>>365
なんか目新しい機能がありましたか
367nobodyさん:2009/11/05(木) 00:01:17 ID:???
自分で確認しろクズが
368nobodyさん:2009/11/05(木) 13:54:33 ID:???
>>367
うっせーカス
369nobodyさん:2009/11/05(木) 14:44:41 ID:???
高速開発CakePHPの恩恵をなかなかうけられない
CakePHPじゃない、しかも安い仕事ばっかりだ
でもCake開発者には感謝!感謝!
370nobodyさん:2009/11/09(月) 15:19:00 ID:???
>>369
Cakeのようなフレームワークを使わない案件の場合は、どうやって開発しているんですか?
371nobodyさん:2009/11/10(火) 08:46:11 ID:???
素で開発
372nobodyさん:2009/11/10(火) 14:24:19 ID:???
wberoot/js/以下にExtJSを配置して
レイアウトでEXTJSを読み込ませて実行すると
syntax error
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML...TR/xhtml1/DTD/xhtml1-transitional.dtd">
ってなるんですが分かる方いいますか
373nobodyさん:2009/11/10(火) 19:00:27 ID:???
mixiコミュニティで解決してもらえゴミクズ
374nobodyさん:2009/11/11(水) 06:45:27 ID:???
375nobodyさん:2009/11/11(水) 07:12:47 ID:???
CakePHP1.2.x PHP4対応
CakePHP1.3 PHP4対応
CakePHP2.0 PHP5.2以降対応
Cake3改めLithium PHP5.3以降対応

かな。まとめると
376nobodyさん:2009/11/11(水) 07:17:04 ID:???
LithiumはもはやCakePHPとは関係ないものだと思っている
377nobodyさん:2009/11/11(水) 14:46:39 ID:???
分家と考えれば無関係とも言えまい
378nobodyさん:2009/11/12(木) 15:50:16 ID:???
perl飽きたからphp弄り始めて
車輪の再開発はperlで散々やって満足したからフレームワーク使ってみようかなーと思って
cakephpに手を出したんだけど
dbのテーブル設計とかにまで制約というか規約があると思わなかったorz

wikiみたいにユーザーにデータを編集してもらうことを考えて、ほぼ全てのテーブルが
ID+編集時刻で主キーにするような設計しちゃったんだけど
これはやっぱり止めた方がいいと言うか、チュートリアル読み終わってからdb設計やり直したほうがいいんでしょうか(ヽ'ω`)
379nobodyさん:2009/11/12(木) 15:58:58 ID:???
なにいってるかわからんが
規約を無視したときの弊害を理解しないでそれを行うのは危なすぎる
380nobodyさん:2009/11/12(木) 17:03:05 ID:???
>>378
モデルクラスの$primaryKeyを変更すればなんとかなるじゃね
ttp://book.cakephp.org/ja/view/71/Model-Attributes#primaryKey-437
381nobodyさん:2009/11/13(金) 09:09:42 ID:???
変更しないほうがいい。
382nobodyさん:2009/11/13(金) 12:15:47 ID:???
個人で地味に使うなら問題無し。
仕事で納品するなら駄目。
383nobodyさん:2009/11/13(金) 21:08:19 ID:???
どの辺りが問題になってくるんですかね?>主キー変更
384nobodyさん:2009/11/14(土) 00:31:03 ID:???
フレームワークの標準から外れたことをしようとするな。
いいから主キーにはidを使え。
385nobodyさん:2009/11/14(土) 08:43:46 ID:???
規約を破ったらフレームワークを使う意味がない。
386378:2009/11/14(土) 08:57:02 ID:???
ご意見ありがとうございます。
チュートリアルまで終わった結果、db設計から考え直すことにしましたorz
ところで、joinテーブルを使ったお勧めのチュートリアル or サンプルってありますでしょうか。
387nobodyさん:2009/11/14(土) 11:22:57 ID:???
思想的にjoinテーブル使うのはは邪道だと思うんだけど
388nobodyさん:2009/11/14(土) 11:52:14 ID:???
>>387
例えば編曲家検索サイトってのがあったとする
同じ曲を、バージョン違いで別々のミュージシャンが編曲することは良くあるという前提で

人TBL: [ID]、[編曲家名]、[]、[]、、
曲TBL: [ID]、[曲名]、[]、[]、、

編曲家で検索するとその人の曲一覧が出て、
曲で検索するとその曲に携わった編曲家一覧が出るとかいうのを実現したい場合、
曲人TBL作るしか無い気が
389nobodyさん:2009/11/14(土) 11:56:22 ID:???
>>388
つHABTM
390nobodyさん:2009/11/14(土) 12:01:01 ID:???
>>389
joinテーブル=HABTM だよね…?
もしかして>>386はSQL直接書きたいって言ってるのか
391nobodyさん:2009/11/14(土) 17:37:53 ID:???
え? 女陰?
392nobodyさん:2009/11/14(土) 18:25:30 ID:???
ほと について語り合うホットなスレがあると聞いて
393nobodyさん:2009/11/14(土) 20:16:43 ID:???
joinテーブルってテンポラリテーブルのことか
今までずっと勘違いしてた…
多対多で表結合するときに必要な中間テーブル的な物を指すのかと思ってた
394nobodyさん:2009/11/16(月) 13:21:27 ID:???
アホな質問かも知れませんが教えて下さい。

例えば、会員登録する処理を書く際に、
1入力画面→2入力確認画面→3登録完了という一連の流れを行う場合、

・1/2/3の処理をまとめて一つのアクション内で処理

・それとも別々のアクション名にして処理

どちらのほうがいいのでしょうか?
395nobodyさん:2009/11/16(月) 15:08:41 ID:???
>>394
俺なら一緒にしちゃうなあ。
1と2はテンプレート切り替えるだけだし、3はアクション分けるほどの処理じゃないし。
少なくとも1と3は一緒にしないとバリデーションがうまく動かないというか、設定がめんどくさい気がする。
396nobodyさん:2009/11/16(月) 21:21:53 ID:???
>>394
395に同意。

一つのアクション内で

・確認画面を render
・登録完了時 $this->flash だな。
397nobodyさん:2009/11/16(月) 21:48:01 ID:???
時と場合によるだろ
かたることじゃねーよ
398394:2009/11/16(月) 22:29:14 ID:???
基本は一つにまとめたほうがよそうですね。
参考になります。皆さんどうも有難うございます。
399nobodyさん:2009/11/17(火) 18:00:15 ID:???
再利用性が高くなるし、修正を入れるときも楽だから
処理を小分けしてアクション(メソッド)をつくるんだが、
他の開発メンバーは一つのアクション内にif文で分けたりすることが多い。

正直やりにくい
400nobodyさん:2009/11/17(火) 18:56:21 ID:???
修正が入る場合、結局if文の分岐全てに影響がある場合が多いからじゃね
再利用性が生きる可能性の問題と言うか
手間に見合った結果が望めるかどうかって意味では、生産性の問題だな
401nobodyさん:2009/11/17(火) 19:17:46 ID:MEFZJKPu
xamppで開発する際、
xampp/htdocs/cake/sample
このcakeフォルダの中にcake_1.2.5を入れてsampleにリネームして開発
してるんですけど、開発進めてるうちに、

http://localhost/cake/sample/cake/sample/users/edit

みたいな感じでcake/sampleがだぶるんですけど、こうなってしまう可能性として
何が考えられますか?
親切な方いらっしゃったら、解決方法教えて下さい。
402nobodyさん:2009/11/17(火) 20:31:35 ID:???
親切じゃない人ばっかりみたいだな。まぁその通りだけど。
403nobodyさん:2009/11/17(火) 22:03:00 ID:???
HABTMの削除でハマった。
リンクテーブルって自動で消せないの?
unbindして個別にdeleteしたわ
404nobodyさん:2009/11/17(火) 23:09:41 ID:???
質問です。

[tablea HABTM tableb]で、下記を実現したい場合
ttp://www.ex.net/tableas/index(一覧)
 tableaのidとtitleだけ表示できれば良い
ttp://www.ex.net/tableas/view(詳細表示)
 tableaの該当データに関連する、tablebのデータも表示したい

規約通りにテーブル作った上で、tableaのmodelに
var $hasAndBelongsToMany = array( 'Tableb' );
と書く事でデータの連動表示は実現できたんですが、
modelで定義してるために、indexの時にまで必要の無いtablebのデータを引っ張ってきてしまっています。
これってすごく無駄に思えるんですが、改善の余地はあるんでしょうか。

例えばview(詳細表示)用に別名でmodelを作れば不満点は解決すると思うんですが、
そうするとテーブル名(s)≠モデル名になり、規約から外れてしまう?気がして、悩んでます。
405nobodyさん:2009/11/17(火) 23:33:14 ID:???
そんな基本的なこと人に聞くの?
マニュアル読まないの?目ないの?

recursiveで検索
406nobodyさん:2009/11/17(火) 23:34:11 ID:???
>例えばview(詳細表示)用に別名でmodelを作れば
完全にキチガイ
407nobodyさん:2009/11/17(火) 23:34:34 ID:???
>>401
最後にスラッシュをつけて終わらせるでググってみるといいよ。
パスがおかしくなってるんだよ。

>>402
何が言いたいの?
408nobodyさん:2009/11/17(火) 23:44:08 ID:???
DBのビューのモデル作るときに主キーどうしてます?
409nobodyさん:2009/11/18(水) 00:17:14 ID:???
>>408
要点まとめてから質問しろカス
なにでなにをいつどうしたいのか、現在どうなってどう困ってるか書け
410nobodyさん:2009/11/18(水) 00:32:47 ID:???
>>403
中間テーブルはDB設計ミスってなければちゃんときえるが
411nobodyさん:2009/11/18(水) 00:39:32 ID:???
>>405
ありがとうございます。
出直してきます。
412nobodyさん:2009/11/18(水) 01:19:21 ID:ju/+mBFJ
>>401
基本的にcakeは/app/webrootをドキュメントルートにして動かすものだから、
cakeを丸ごと公開ディレクトリに突っ込んで動かすのはあまり推奨されない
(たぶんそのせいで挙動がおかしい)

http://localhost/cake/sampleをルートにしたいのなら/htdocs/cake/sampleに
/app/webrootの中身を突っ込んで、/cakeのコアファイルは別のところにおいて
/app/webroot/index.phpの中の設定をいじってコアの場所を指定するといい
413nobodyさん:2009/11/18(水) 01:24:03 ID:ju/+mBFJ
414nobodyさん:2009/11/18(水) 01:42:23 ID:???
415nobodyさん:2009/11/18(水) 08:11:06 ID:zky0t9H9
GETで渡したパラメータを取得する時は
直接$_GETを参照するのですか?
416nobodyさん:2009/11/18(水) 09:00:24 ID:???
>>415
つdebug($this->params)

あとdebug_kit入れておくと勉強になると思う
417nobodyさん:2009/11/18(水) 11:24:20 ID:???
>>410
そう言われて見直した。
ミスってたorz
というより、勘違いしてた。
idって昔から必要だったっけ・・・
418410:2009/11/18(水) 11:31:21 ID:???
>>417
そーそーそこ
たしか昔マニュアルかなんかみながら作った時はIDいらないと思ってたんだけど、
俺も消えてなくて設計見直して治った
よーわからん
419nobodyさん:2009/11/18(水) 12:18:44 ID:???
俺が3ヶ月くらい前に書いたコードだとidあるなー
まあ、idあった方がいろいろ便利な気がする
420nobodyさん:2009/11/18(水) 15:33:15 ID:???
idもそうだけどdb側の設定もいるだろ
InnoDBにしてdelete on指定してとか
421nobodyさん:2009/11/18(水) 17:47:42 ID:7Al/6kAb
初めまして。

初心者な質問で申し訳ないのですが、
HTMLのckeditorというのを使いたくて、ダウンロードしたフォルダをそのまま、
vendorsの中に置き、
/vendors/ckeditor/_sample/sample.css
をビューの中で呼び出したいのですが、それは可能でしょうか。


よろしくお願い致します。
422nobodyさん:2009/11/18(水) 17:52:23 ID:???
確か最近ベーカリーにckediterの導入方法が載ってたよ
423nobodyさん:2009/11/19(木) 08:52:28 ID:???
/vendors/css/ckeditor/_sample/sample.css
じゃだめなの?
424nobodyさん:2009/11/19(木) 10:14:24 ID:???
>>416
ありがとうございました
425nobodyさん:2009/11/19(木) 13:34:17 ID:???
BAKEって何ですか?
何の役割があるんですか?
426nobodyさん:2009/11/19(木) 13:40:06 ID:???
BAKAには分からんよ
427nobodyさん:2009/11/19(木) 13:51:46 ID:Rp5rjDhr
>>425
ちゃっちゃとcakeが焼きあがる
ただ、慣れると手で焼いても大して変わらないのでbake使う人は少ない
428410:2009/11/19(木) 13:55:24 ID:???
>>427
BAKA

使ってるわあほ
429nobodyさん:2009/11/19(木) 14:03:47 ID:???
最初の骨格作る時とプラグイン作るときとかいっぱい使ってるよー
ディレクトリとか自分で作るのめんどくさいし
430nobodyさん:2009/11/19(木) 14:04:43 ID:???
CakeよりもZendの方が良くない?
431nobodyさん:2009/11/19(木) 14:43:52 ID:???
確かに字面が角ばっててカッコいいかもな
432nobodyさん:2009/11/19(木) 14:51:15 ID:???
Zがかっこいいよな
433nobodyさん:2009/11/19(木) 15:10:31 ID:???
>ただ、慣れると手で焼いても大して変わらないのでbake使う人は少ない
どこで統計取った?
434nobodyさん:2009/11/19(木) 15:32:54 ID:???
bakeで焼けるスケルトンを自分好みにするとさらに吉
435nobodyさん:2009/11/20(金) 01:40:07 ID:+tfzDSTL
>>433
cakeの勉強会。
ここ1年くらいの動向は知らんけど、ちょっと前まではbake使いは異端だった。
436nobodyさん:2009/11/20(金) 01:54:33 ID:???
cakeの勉強会はbakeも使いこなせない連中の集いだったんだww
437nobodyさん:2009/11/20(金) 02:10:14 ID:???
勉強会いったことないの?
地方の人は来づらいか
438nobodyさん:2009/11/20(金) 02:44:41 ID:???
まぁ明らかにレベルの低い集まりだけどな
やつらのブログみてるとわかる。
何つーか業務レベルじゃないんだよな。
趣味レベルならあれでいいんじゃない??
439nobodyさん:2009/11/20(金) 07:18:47 ID:???
>>438のレベルの高いブログのURL貼って!
440nobodyさん:2009/11/20(金) 08:42:10 ID:???
CakePHPで作ったと言われる(思われる)サイトってどんなのがありますか?
441nobodyさん:2009/11/20(金) 09:40:10 ID:???
>>440
http://addons.mozilla.org/ とか(Djangoに変わるらしいけど)
公式にいろいろ出てるよ
442nobodyさん:2009/11/20(金) 12:57:12 ID:2yh9qtSB
レイアウトviewの文字コードとコンテンツviewの文字コードを一緒に変更したいのですが可能でしょうか?

helperのafterRenderで変更するとコンテンツviewのみが変更されてしまいます。
今はレイアウトview内で変更していますがとても効率が悪いです。

ご教示お願いいたしますm(_ _)m
443nobodyさん:2009/11/20(金) 12:58:17 ID:???
>>442
afterLayout() だったと思う
444nobodyさん:2009/11/20(金) 13:33:42 ID:???
CakePHPっていい参考書何も無いよね
何だ、コレ?って内容の本しか今の自分は見た事がない
俺の行く本屋に売ってないだけかもしれないけれど
445nobodyさん:2009/11/20(金) 13:45:18 ID:???
公式みて分からんやつはどんな本買っても無駄
頭悪いから仕事変えろ
446nobodyさん:2009/11/20(金) 13:58:18 ID:???
公式見て分からないんじゃなくて、ウェブで見るのがめんどくさくて皆本で学習してるんだと思う
少しでも目を休めるとか、通勤途中で時間を潰すとか、リンクばっかで嫌になるとか
公式マニュアルはゴチャゴチャしていたり、わざわざそれを調べるために色々と手間がかかるし、順番どおりに学習できない場合があるから本に行く人もいるんだと思う

公式マニュアルをプリントアウトして学習できれば一番いいんだろうけれど、そういうわけにもいかないからね
447nobodyさん:2009/11/20(金) 15:35:54 ID:???
最近マニュアルの目次や前後ページへ移動リンクをクリックしても
ちゃんと飛んでくれないページが多いね。
英語ページだと問題ないのに・・・なんとかならないのかな?
448nobodyさん:2009/11/20(金) 16:36:05 ID:???
なんでCakePHPで作られたサイトの文字ってデブなんですか?
449nobodyさん:2009/11/20(金) 16:38:57 ID:???
Cakeはデブだろjk
450nobodyさん:2009/11/20(金) 16:42:51 ID:???
PizzaPHP
451nobodyさん:2009/11/20(金) 17:40:41 ID:???
>>444
そうか?いい参考書がメインだと思うけどな。
あと多少なれてきたらcakephpの辞書があれば余裕。
やっぱりいいよcakephp。
452nobodyさん:2009/11/20(金) 17:46:32 ID:???
cakephpよりもzendの方が本はいいのが揃っている
ただし、リファレンス本がないのがきつい
453nobodyさん:2009/11/20(金) 22:23:46 ID:iP3Jjemy
HABTMの連結テーブルにおいて、Controllerの主モデル(ex. UsersTagsController => UsersTag)は
find('all')でアソシエーションされたモデルがjoinされて返ってくるのだけど、 $usesで宣言したモデルだとアソシエーションが無効になってる。

class UsersTagsController extends AppController{
function hoge(){
$this->set('uses_tags',$this->find('all')); // User,Tagが連結される
}}

class UnyosController extends AppController{
var $uses = array('UsersTag');
function hogehoge(){
$this->set('users_tags',$this->UsersTag->find('all')); // UsersTagのみが返される
}}
今のところ
$this->UsersTag->bind('User');
$this->UsersTag->bind('Tag');
とか、$useに入れないで $this->UsersTag = new UsersTag();
ではまともに連結されて返ってくるのだけど、これって仕様なの?
AppModelで actsAs に containable 入れてるんだけどこれが原因とか?
454nobodyさん:2009/11/20(金) 23:56:39 ID:???
>>453
UsersTagsControllerの存在とかUsersTagモデルを読み込む意味とかが分からない
あえてそうする意味は何?
455nobodyさん:2009/11/21(土) 00:49:42 ID:hiPUggY3
ユーザーの追加時にAuthコンポーネント使ってるんだけど、
UserModelとかでパスワードの未入力チェックとかのバリデーションかけると、
Viewでパスワードハッシュが掛かった値が入ってきちゃうんだけどこれはなんですか?w
ハッシュかける前の状態保持して戻すのが普通だと思うんですが、これは仕様?それとも使い方間違ってる?
456nobodyさん:2009/11/21(土) 00:52:23 ID:???
なにがwだ
さんざん既出じゃぐぐれぼけ
457nobodyさん:2009/11/21(土) 00:54:51 ID:???
>>455
Authを使った誰もが引っかかる道だなw
マニュアルにさらっと対処法が書いてあったはずと思うけど。まあググれば出てくる。
458453:2009/11/21(土) 01:00:39 ID:LeZPc13i
>>454
Cakeでここまでやるのは馬鹿馬鹿しいかも知らんが、多対多リレーションが増えると
連結テーブルのモデルから操作したほうが処理がすっきりすることがある。
特にユーザモデルの場合は、複雑な関係性を持ちやすい。

例としてUserとTagを出したが、実践的な例でいうと、ユーザがグルーピングされてる時、

// controller
$groups_users = $this->GroupsUser->find('all');
$this->set('groups_users',Set::combine($groups_users,'{n}.User.id','{n}.User.name','{n}.Group.name'));
// view
echo $form->input('Hoge.user_id',array('type' => 'select','multiple' =>true,'options' => $groups_users));

とするとすっきりと<select>で<optgroup>してくれる。
459455:2009/11/21(土) 02:25:42 ID:hiPUggY3
>466
あら。冷たいのね。。
>467
情報どうもー。まぁ、調べたあとのコメントだったんだけども。

まぁ、完璧に動作して欲しいっていうのが贅沢なのはわかってるけどね。
やっぱり自動的にハッシュ化する部分はそのあたりが(その部分だけなんだけど。惜しい。。)うまく動かないとちょっと使いづらいかな。
ハッシュ化のロジックだけありがたく使わせてもらうことにしたよ。
460nobodyさん:2009/11/21(土) 02:37:51 ID:???
レス番もコメントもずれてる
461nobodyさん:2009/11/21(土) 12:11:49 ID:???
ハッシュ化しないようにすりゃいいのに。
462nobodyさん:2009/11/21(土) 19:33:18 ID:???
マニュアル見てもhasOneとかhasManyとかテーブルの組み合わせが、
まったくわからないんだが、サルでもわかるサイトない?
463nobodyさん:2009/11/21(土) 19:38:25 ID:???
hasOne=1対1
hasMany=1対多
hasAndBelongsToMany=多対多
464nobodyさん:2009/11/21(土) 19:58:10 ID:???
USERテーブルに県名番号持たせてて、
KENMEIテーブルから県名を引っ張ってくるのは
USER hasOne KENMEIだよね?
思いとおりにSQLが作れないの・・。
参照されるテーブルのカラム名を、参照するテーブルに作らないとダメなの?
465nobodyさん:2009/11/21(土) 20:45:08 ID:???
>>464
belongsToじゃね?
466nobodyさん:2009/11/22(日) 00:46:11 ID:???
>>464
マスタは逆方向にhasMany
KENMEI hasMany User
User belongsTo KENMEI
467nobodyさん:2009/11/22(日) 00:47:08 ID:???
hasOneならば、USERテーブルにもKENMEIテーブルにも同じキーしか存在しない場合。
つまりユーザは一人ひとり必ず違う県名であって、47人以上のユーザが作れないことに
なってしまう。
ユーザ 多対1 県名
なのだから、
県名 hasMany ユーザ
ユーザ belongsTo 県名
である。
468nobodyさん:2009/11/22(日) 00:59:33 ID:???
>>465
>>466
>>467
おお!ありがとうございますm(__)m
わかりやすいです。
今、苦戦中です。がんばります。
469nobodyさん:2009/11/22(日) 01:01:09 ID:3AvLDreV
ひとりごと
bakeは'ばけ'と発音する。
小麦粉などの材料を化けさせるとcakeになる(少しイミフメ)
470nobodyさん:2009/11/22(日) 01:02:39 ID:???
じゃぁcakeは’かけ’と発音だな
471nobodyさん:2009/11/22(日) 01:07:29 ID:???
468です!
ずーっとできず、疑心暗鬼でグチャグチャでしたが、
みなさんのアドバイスで確信になり、調べつくしました結果、

× var $belongTo =
◎ var $belongsTo =

が、原因でした。
ほんと、ありがとうございます。
472sage:2009/11/22(日) 01:10:28 ID:3AvLDreV
それではみなさま'cakeはかっけー'ということで(なにがだ)
473472:2009/11/22(日) 01:12:06 ID:???
>>471
おめでとです、cakeは命名規則に少し癖がありますよね
474nobodyさん:2009/11/22(日) 01:14:10 ID:???
ほんとです。初心者は命名規則でパニックです(´;ω;`)
475nobodyさん:2009/11/22(日) 01:19:13 ID:???
>>474
まぁ、それでも直にSQLを書かないでDBMSの複数テーブルを操作できるわけですから、そこそこすごいことなのかも
476nobodyさん:2009/11/22(日) 01:29:35 ID:???
命名規則は英語圏の人間になったつもりで肌で理解していくと良い
なぜModelは単数形でtableとControllerは複数形かとか
それが分かればbelongToじゃなくてbelongsToなのもすっきりするよ

だから KENMEI とかつけないほうが良い(面倒でも英単語を調べる)
477nobodyさん:2009/11/22(日) 01:45:41 ID:???
なんかこのスレなごんでいて、異教徒wが襲来しないけど、もっと良いものがあるのかな?w
ちょっと巡回してみます
478nobodyさん:2009/11/22(日) 02:06:39 ID:???
>>476
上の段落と下の段落に何のつながりがあるんだ?
「だから」でも何でもないだろ

別に好みの問題。おれは英単語で命名する。
でもネイティブが見たら「この単語はねーわww」っての選んでるんだろうけどな
479nobodyさん:2009/11/22(日) 02:14:16 ID:???
>>478
言葉足らずだったが、英単語でつけることが肌で理解するということの一助になると思っている

ちなみにおれも ネイティブ「ちょwww」 な単語つけてる
480nobodyさん:2009/11/22(日) 02:28:25 ID:???
ここまでを勝手にまとめてみると、'KENMEI'はそこそこ賢明ということでいいでつか?
PrefectureNameとかだと、長すぎぽいしねw
481nobodyさん:2009/11/22(日) 02:32:17 ID:???
>>480
なぜNameつける
482nobodyさん:2009/11/22(日) 02:42:36 ID:???
だよね。
どうせnameフィールド作るんだし、Prefecture.nameで値にアクセスできるのが一番自然。
483nobodyさん:2009/11/22(日) 03:44:35 ID:???
まぁ、お約束だけど、それなら'KEN'がさらにみぢかい件について
484nobodyさん:2009/11/22(日) 04:10:38 ID:???
>>476
なんで、modelで複数形を使わないのか、教えてくれませんか?
英和で見るとmodelsの用例は結構あるんだけど・・・
ttp://eow.alc.co.jp/models/UTF-8/
485nobodyさん:2009/11/22(日) 04:18:41 ID:???
ヒャッハー!汚物ですが、消毒されに来ました
486nobodyさん:2009/11/22(日) 11:32:51 ID:???
>>484
いやそういうこっちゃないでしょ
モデルの命名には単数形が使われるってことでしょ
487nobodyさん:2009/11/22(日) 12:30:13 ID:???
modelに複数形があるかないかで判断する問題じゃない
488474:2009/11/22(日) 15:35:18 ID:???
モデル、めんどくさくて嫌いでしたが、わかってくるとメチャメチャ簡単ですね!
感動します\(^o^)/
489nobodyさん:2009/11/22(日) 15:35:51 ID:???
>>486
>>487
それなら了解です

> 命名規則は英語圏の人間になったつもりで肌で理解していくと良い

英語圏の人間になったつもりになったらmodelが単数形ってのが理解できる
というのがわからなかったのです。

個人的には、モデルはレコードと対応し、その集合がテーブル、
だからmodelは単数形と理解していたので、
ネイティブと関係ないやん?と思った。
おれの理解がテキトウってのはおいといてw

最近、なごみ杉
490nobodyさん:2009/11/23(月) 23:55:07 ID:???
聞いていいですか?
たとえば、2chとか「PC等」→「プログラム」→「【PHP】CakePHP」→「レス」って構成ですよね。
これってどういうDB設計になってるんですか?
実務経験がないのでわかりません。

「PC等(カテゴリID)」→「プログラム(カテゴリID+サブカテゴリID)」→「【PHP】CakePHP(サブカテゴリID+スレID)」→「レス(スレID+レスID)」
             →「デスクトップ(カテゴリID+サブカテゴリID)」→「cpuをとっかえたい(サブカテゴリID+スレID)」→「レス(スレID+レスID)」

って感じですかね?
491nobodyさん:2009/11/23(月) 23:58:00 ID:???
490です、連投すみません
「テーブルをたくさん作るのかな?」とか考えたんですけど、違いますよね?
492nobodyさん:2009/11/24(火) 00:03:05 ID:???
スレ違い
あるのか知らんけど、データベース設計スレっぽいもの探して聞いてきなさい
普通はカテゴリTBL、板TBL、スレTBL、レスTBLがあると思うよ
493nobodyさん:2009/11/24(火) 00:27:26 ID:???
実はDB使ってない
494nobodyさん:2009/11/24(火) 00:29:12 ID:???
聞いて良いですか?
なんでこのスレ、DB初心者質問みたいのが定期的にでるんすかね
495nobodyさん:2009/11/24(火) 00:32:34 ID:???
他に話題がないからw
496nobodyさん:2009/11/24(火) 01:50:47 ID:???
Cakeの未来を語ろうじゃないか。
どうなるんだ 
俺はDonateしたけど。
497nobodyさん:2009/11/24(火) 23:14:47 ID:???
>494
DB設計などの地味?な分野はサッパリわからん!
という人の比率が高いんじゃね、Web屋には。
498nobodyさん:2009/11/25(水) 02:33:33 ID:???
関連モデルのビヘイビアのafterFindって呼んでくれないんですか?
なんか解決法あるんでしょうか?
499498:2009/11/25(水) 02:41:14 ID:???
ググってみたら
>Currently, callbacks in behaviors are not triggered on recursive finds.
>This is done by design, but changing it is something to consider in the future.
だそうで・・・なんでじゃー
500nobodyさん:2009/11/25(水) 02:51:15 ID:???
まぁさんざん既出なんだけど、悔しいよねそこ
501498:2009/11/25(水) 02:59:58 ID:???
>さんざん既出
そうみたいですね。すいません。
とりあえずモデルに書いてやり過ごします。
502nobodyさん:2009/11/25(水) 23:32:21 ID:???
今作ってるサイトで、「あ〜ん」まで46文字分の目次リンクを作ろうとしてます。
目次は「http://domain.com/tables/index/1」のようなURLで、
「動物」「植物」などのジャンル別に同じようなリンク群を用意します。
各リンク群の差異は、テーブル名だけになります。

んで抽象的な質問なんですが
ポリシー?として、このリンク群にも毎回Htmlヘルパーのリンク出力メソッドを使うべきでしょうか?
リンク群をベタで一つだけ書いて、str_replaceでテーブル名をジャンルごとに置換出力するほうが
ソース的にすっきりするので、そうしようとしているんですが…

フレームワークのお作法と言うか、ある関数は使うべきと言うか、
そう言う点で多少無理があってもヘルパー使うべきですか?
変な質問でスミマセン
503nobodyさん:2009/11/25(水) 23:45:15 ID:???
viewのところは好きにやればいいんじゃね?
気になるならヘルパー作ればいいし
elementを利用するもよし
504nobodyさん:2009/11/26(木) 00:00:06 ID:???
>>503
そか、メンテナンス性とか気にするならヘルパー作っちゃうって手もあるんですね。
ありがとうございます
505nobodyさん:2009/11/27(金) 08:36:18 ID:???
Error: Database table tests for model Test was not found.
って出てるんですが、Testsってコントローラーは作ってもTestというモデルは作ってません。
なんでこういうエラーがでるんでしょうか?
506nobodyさん:2009/11/27(金) 09:17:04 ID:???
>>505
Modelがないから
$useTable = false なModelを作ってあげればよい
507nobodyさん:2009/11/27(金) 13:24:00 ID:???
h()使ってないのに自動でエスケープされます。。
どういうことですか?
508nobodyさん:2009/11/27(金) 13:53:50 ID:???
formヘルパー使ってたら勝手にやってくれるが
509nobodyさん:2009/11/27(金) 21:18:25 ID:???
質問です
authComponentを使っているのですが
firefoxやgoogle chromeだとうまいことログインできるのですが
IE6だとログイン→リダイレクト先のログインチェックではじかれる→ログインということで
ログイン画面がループしますが、原因が不明です。

ご教授お願い致します。
510nobodyさん:2009/11/27(金) 23:19:31 ID:???
>>508
それは知らなかった。でも使ってないんですよ
謎ですわ・・・
ありがとうございした。
511nobodyさん:2009/11/29(日) 00:08:36 ID:???
cakephpの勉強で技評のtodoアプリを作ってみているところなのですが
第6回(http://gihyo.jp/dev/serial/01/cakephp/0006)をやってみたところ
タスクの追加は正常に行えるのですが、タスクの内容が表示されません。
というか入力フォームに入力した内容がデータベースのcontentに格納されていないようで
contentのtextが空になっています。

何か原因が思い当たるケースはありますでしょうか
512nobodyさん:2009/11/29(日) 07:36:33 ID:???
>>511
DBの文字コードをチェックし
app/config/database.php の encoding を指定する utf8 とか
でどう?
513nobodyさん:2009/11/29(日) 11:49:13 ID:???
>>512
レスありがとうございます。
照合順序もutf8ですし、encodingもutf8に指定してあります。

良くないんですけど解決しないまま
第7回(http://gihyo.jp/dev/serial/01/cakephp/0007)をやってみたところ
editで内容を編集した場合にはcontentに正常に格納されています。
514nobodyさん:2009/11/29(日) 16:26:57 ID:???
$this->log でログ書き込めるけど、見るときどうしてる?
いちいちダウンロードして見るもの面倒だし。

良い方法ないかな。
515nobodyさん:2009/11/29(日) 16:50:36 ID:???
*.logを読み込み表示するプラグインをつくって
管理画面からそのページ開いてる
開発権限でログインしたときのみ見れる。

うちはShellからの軌道をよく使うからこういうのないときつい
516nobodyさん:2009/11/29(日) 20:41:32 ID:???
>>513
echo $form->create("Task",array("url"=>array('action' => 'add')));
echo $form->inputs(array("content"));
echo $form->end("add");

ver.1.2以上だったら$form使ったほうがいい。
517nobodyさん:2009/11/29(日) 23:02:58 ID:???
>>516
解決しました。
ありがとうございます。
formには書き換えてたんですがinputの箇所が正しく書けていなかったようです
518nobodyさん:2009/11/30(月) 11:50:29 ID:???
Linux環境でCakePHPのシステムを作成しているのですが、mdbファイルを扱うには
どのようにすべきでしょうか?良いライブラリなどありましたらお教えください。
519nobodyさん:2009/11/30(月) 12:38:32 ID:???
>>518
datasource作るといいんじゃね?
520nobodyさん:2009/11/30(月) 16:10:47 ID:???
scaffoldで、カラム名が"id"のカラムはedit画面で表示されない(=入力できない)ようですが、
これって変更できないんでしょうか?
idをauto incrementで付与せず手動で付与するテーブルの管理にscaffoldが使いたいのです。
521nobodyさん:2009/11/30(月) 17:23:08 ID:???
>>520
viewだけbakeして edit.ctp 修正すればいける。かも
でも素直にbakeするが吉
522nobodyさん:2009/11/30(月) 18:46:32 ID:???
>>521
了解っす( `・ω・´)ゝ”
523nobodyさん:2009/11/30(月) 20:13:43 ID:VRbng4qp
今モデルを使わずに勉強してます。
http://exmaple.com/test
にアクセスすると、app/views/layouts/test.ctpがちゃんとヘッダ、フッタが反映され
思い通りに表示されます。
一方、http://example.com/にアクセスされて表示させるには
どこのどのファイルをいじればいいのでしょうか?
つまり、HTTPのルート直下のページを作りたいのです。
これはアクションなしと言うことなのでしょうか?
524nobodyさん:2009/11/30(月) 20:25:10 ID:???
とりあえずそんな変なところから始めないで
一回部ログチュートリアルとかこなしてから来てね

ばいばい
525nobodyさん:2009/11/30(月) 20:46:11 ID:???
むしろそんな事ができることに驚いた
526523:2009/11/30(月) 22:01:31 ID:???
解決しました。ありがとうございました。
527nobodyさん:2009/12/01(火) 00:40:49 ID:???
>>523
千里の道も一歩から、がんばってね/(^_^)/
528nobodyさん:2009/12/01(火) 05:46:31 ID:iKHu3fPb
Cookie コンポーネントの質問なんですがもう二日ぐらい潰してしまったんで誰か助けてくださいorz

app_controller に Cookie コンポーネントを使っています
hoges コントローラーの beforeFilter メソッドで app_controller の beforeFilter メソッドを呼んでいて
beforeFilter(app) のメソッド内で Cookie->write でクッキーに保存した値を
hoges コントローラーの index アクション内で Cookie->read をして先ほどのクッキーを読み出すことは可能なんですが

beforeFilter(app) のメソッド内で Cookie->name のクッキー名を変更するとなぜか読み出せないんですよね
でもブラウザに保存されてるクッキーを確認すると、変更後のクッキー名でクッキーが保存されてるんで読み出せるはずなんですがロード出来ません

荒技で cookie コンポーネントのPHPファイルの var $name を 最初から 'CakeCookie' から任意の名前に変更してみてもロード出来なくて絶望しました
$_COOKIE 使って実装するのは暗号化も行ってるし何よりフレームワーク使ってる観点から保守性が低いのでそれ以外で誰かお願いします
529nobodyさん:2009/12/01(火) 09:41:32 ID:???
>>528
http://api.cakephp.org/view_source/cookie-component/#line-236
Optional [Name.], reguired key
$this->Cookie->read(Name.key);
530nobodyさん:2009/12/01(火) 17:52:30 ID:???
>>528
read 出来るときと出来ない時のコードの変更が beforeFilter(app) のメソッド内で Cookie->name のメソッドの追加の有無だけなんで
引数が間違ってるっていうのは無いです

一応自己解決(完結?)したので…

質問してから CookieComponent 調べていくと write 後、$_COOKIE で書き込んだ値を取得してみるとなぜか取得出来なくて
でもブラウザにはクッキーが保存されてるので 2回目以降のアクセスだとクッキーが読み込まれるんですよね

それで Cookie->name でクッキー名を変更しなければ、write してから read すると読み込まれているからどうやってクッキーを取得してるのかと思って調べてみると
write すると CookieComponent のメンバ変数の $__values に値を保存して read 時はその変数から取得していて
結局 CookieComponent のメンバ変数にクッキーを保存して取得してた流れみたいでした…

で、Cookie->name でクッキー名を変更を行わないと上のような処理になって、write 後 read しても読み取れるんですが
変更しちゃうと hoges_controller の beforeFilter が終わると $__values に変更後のクッキー名のクッキーを読み込んで write した値が消える事が原因だったみたいです
write しているタイミングが app_controller の beforeFilter メソッド内でやっているので Cookie->name を追加すると必ず $__values の値はリセットされるので
hoges_controller のアクションメソッドで read しないで、beforeFilter 内で read してapp_controller のメンバ変数に入れた後で
hoges_controller のアクションメソッドで変数を参照するということで完結しました…

CookieComponent って万能じゃ無いんだね…
なんで write 後、$_COOKIE で取得出来ないのかわけ判らんのですが長文でごめんなさい
531nobodyさん:2009/12/01(火) 20:20:07 ID:???
>>519
datasourceのもう少し詳しい情報教えてもらえますか?
532nobodyさん:2009/12/01(火) 20:27:49 ID:???
srbr
ksg
533nobodyさん:2009/12/01(火) 20:29:33 ID:???
しらべろ
くそが?
534nobodyさん:2009/12/01(火) 21:09:47 ID:???
春日じゃね?
535nobodyさん:2009/12/01(火) 22:56:59 ID:???
それならhrhになるだろ
536nobodyさん:2009/12/02(水) 00:42:54 ID:???
どういう暗号化だよ
537nobodyさん:2009/12/02(水) 01:02:04 ID:???
効率いい
538nobodyさん:2009/12/02(水) 08:41:37 ID:???
>>535
ややうけ
539nobodyさん:2009/12/02(水) 13:04:05 ID:???
サラブレッド
高速型
540nobodyさん:2009/12/02(水) 19:35:34 ID:???
>>531
datasourse系は情報が少ないよね。
541nobodyさん:2009/12/02(水) 19:45:19 ID:???
>>531
ソース読めばいいんじゃね?

いやダジャレじゃなくてまじで
まあその前にmdbファイルとやらの仕様調べてこいって話だが
542nobodyさん:2009/12/03(木) 20:35:05 ID:???
そーっすね!
543nobodyさん:2009/12/04(金) 00:15:22 ID:???
だれかへるぷ

http://localhost/hello/bye/
ってアドレスがあったら、まず
DefaultControllerのhello actionを探して、有ったら、
それを実行。

なかったらHelloControllerのbye actionを探して実行

ってなカスタマイズしたいのですけど、よくかわりません

だれかおしえてぽ

というかそのようなことが可能かどうか
というかオープンソースだから不可能はないだろうけど・・・
とはいっても、cakeのcoreに本格的にメスを入れるほど技量はないかも。
544nobodyさん:2009/12/04(金) 07:38:54 ID:???
>>543
Routingでは対応できないから一旦振り分け用のaction呼んでそこからrequestActionすればできるけど
でもそもそもそんなことするシーンが分からん
具体的な例をおくれ
545nobodyさん:2009/12/04(金) 09:52:00 ID:???
>>544
routingで出来ないとわかっただけでも有り難いわ。でないと、その辺の資料あさり続けていたし。でもそれをやってしまうとケーキの良いところがそげてしまうねえ。そうするしかないか

カテゴリーに分別して表示する情報サイトみたいなの作ろうとしてて、そのカテゴリー自体はウェブ上で可変なんだけど、URLはカテゴリーを全面に使いやすくしたいので、いきなり、
http://localhost/category1/category2/
ってアクセスで、category1に属するcategory2に属する情報を表示させたいの。でも、登録画面は、
http://localhost/regist/
だったり管理者画面が
http://localhost/admin/hogehoge/
とかっていうのもあるので、

http://localhost/category1/category2/
があったら、まず、
class Category1のCategory2アクションを探して、
なかったら、
class DefaultController extends AppController {
function showCategory() {
$mainCate = $this->param['pass'][0]
$subCate = $this->param['pass'][1]

echo "あんたは、$mainCateの$subCateにいるぜ!";
}
}
って感じのデフォルトコントローラに制御を移行してページを表示。

http://localhost/regist/
みたいのでアクセスしたら、同じようにclass Registのindexアクションを探して、実行。って感じ。

なんか、実際整理して書いてみたら、昨日書いたのと話が変わってしまったwwほんとはやりたいのはこれ。
546544:2009/12/04(金) 13:04:04 ID:???
>>545
CategoriesControllerを置いて、apacheで書き換えるのが良いと思うがどうか
547nobodyさん:2009/12/05(土) 02:07:06 ID:???
カテゴリーの数にもよるかも
でも俺も546に同じ
548545:2009/12/05(土) 15:35:56 ID:???
CetegoriesControllerってのは、545で言うDefaultControllerの役目だよね。
でもapacheでどう書き換えるのかイメージが沸かない
ああぁ
549nobodyさん:2009/12/05(土) 16:23:04 ID:???
cakephpでcron使いたいんだけど
「外部からのアクセス禁止でcronからのみ叩けるアクション」
を作るにはどうしたらいいですかね。
550nobodyさん:2009/12/05(土) 16:38:05 ID:???
ローカルからだけ叩けるようにしとけば?
551nobodyさん:2009/12/05(土) 17:01:27 ID:???
>>550
ありがとう。
function _test(){

}

だとだめだった。
レンタルサーバーだからローカルからってのもよくわからなくて。
552nobodyさん:2009/12/05(土) 17:02:56 ID:???
PHPマニュアルを一読することをお勧めする
553nobodyさん:2009/12/05(土) 17:16:25 ID:???
それはプライベートだろ
554nobodyさん:2009/12/05(土) 18:17:22 ID:???
>>549
つ shell
555nobodyさん:2009/12/05(土) 18:27:22 ID:???
>>549
「cakephp コンソール」 で、

あとは分かるな
556nobodyさん:2009/12/05(土) 18:31:24 ID:???
rhacoっていうフレームワーク使おうと思ったらインストールすらできん;;
557nobodyさん:2009/12/05(土) 18:32:47 ID:???
>>545
ごめん。よく読み直した。

正攻法は、既定のControllerを列挙してRoutingで、それぞれのControllerに飛ばし、マッチしなかったらCategoriesControllerに飛ばす
(ちなみにResistControllerではなく、UsersControllerのregist アクションかな)

ただ、それだと、category登録時にURLとかぶってないかチェックする必要があると思うので、/a/regist のように固定のサブディレクトリを用意しておいたほうが良いかも
558nobodyさん:2009/12/05(土) 18:38:38 ID:???
>>556
つ「Lithium」
559nobodyさん:2009/12/05(土) 18:56:21 ID:???
>>558
ありがとう。でも、rhacoがいいの。conveyor使ってみたくて。
http://conveyor.rhaco-users.jp/
560nobodyさん:2009/12/05(土) 23:11:46 ID:???
すれたいよんだら親兄弟と一緒にしんどいで
561nobodyさん:2009/12/06(日) 00:01:20 ID:???
このスレにはスレ違いを呼び寄せる魔力でもあるんかのう
562nobodyさん:2009/12/06(日) 00:25:38 ID:???
rhacoスレないからじゃない?
563nobodyさん:2009/12/06(日) 01:13:24 ID:???
rhaco2のドキュメントを見て、ああこれは内輪だけで楽しむFWなんだな、と思った
564545:2009/12/06(日) 13:30:36 ID:???
>>557

それならわかる!!

なるほどっっ

ありがとーー!!
565nobodyさん:2009/12/06(日) 17:58:06 ID:???
prefixルーティングしているのですが、
adminで作ったら

admin用フィルター
admin_beforeFilter

普通用フィルター
beforeFilter

みたいに実行してくれないのですか?
自分で呼ばれたurlを解析して
beforeFilterの中で分岐させないと無理?
566nobodyさん:2009/12/06(日) 18:15:52 ID:???
>>565
admin_beforeFilter の発想は無かったわ
でもurlを解析する必要はない
debug( $this->params ) せよ
567nobodyさん:2009/12/06(日) 19:20:01 ID:???
>>565

なるほどっっっ!
$this->params['prefix']
で、取れるのねっ!!

でも、appをできるだけシンプルにしたいから、
cakeのdispatcherに

$controller->beforeFilter();

$prefix = isset($controller->params['prefix']) ? $controller->params['prefix'] . '_' : '';
$controller->dispatchMethod($prefix . 'beforeFilter', null);

ってしてみちゃった!


どうなんだろうなぁ。
cakeに手を加えるのは・・・

自分の使いやすいようにcakeが進化していくのはいいけど、
cakeが新しくなったときに、大変だよなぁ。。。
568nobodyさん:2009/12/06(日) 19:47:35 ID:???
ktailibrary で authコンポーネントを使ってログインNGのとき、PCからだとsessionに
[Message] => Array
(
[auth] => Array
(
[message] => ログインできません
[layout] => default
[params] => Array
(
)

)

)
が入るんですけど携帯用URLでログインNGの時は上記メッセージが入りません。
どうすればよいでしょうか。
569nobodyさん:2009/12/06(日) 20:06:28 ID:???
>>568
すいません。自己解決しました。
570ホクホクバカ ◆YMCgTirJag :2009/12/07(月) 01:15:39 ID:???
みんなcakeでどんなの作ってるの?
おれはmixi踏襲版
571nobodyさん:2009/12/07(月) 12:40:52 ID:???
>>570

・会員制の情報サイト(ユーザー管理、コンテンツ管理)
・企業のお問い合わせフォーム

ぐらい...
572nobodyさん:2009/12/07(月) 12:42:06 ID:???
facebook踏襲版
573nobodyさん:2009/12/07(月) 13:35:03 ID:???
俺はCMSの踏襲版。
姉歯みたいにならないようにきっちり作り込んでおけばあとはそれをコピペで
サイト大量に作れて便利。
574ホクホクバカ ◆YMCgTirJag :2009/12/07(月) 21:00:08 ID:???
何かの踏襲版って、ふとしたときに気が折れますよね。
これ作って意味があるのだろうか・・って
575nobodyさん:2009/12/07(月) 21:19:56 ID:???
僕は2ch.netの踏襲版
576nobodyさん:2009/12/08(火) 00:35:07 ID:???
>>574
勉強になるよ。
完全オリジナルで作りたいのは技術者として当然だけど、
人のものをまねることにより、学ぶものが大きい。
577nobodyさん:2009/12/08(火) 00:37:50 ID:???
まあ、これ使えると他のFWも使えるからな
業務でもそこそこ使われてるから、いいんじゃね
578nobodyさん:2009/12/08(火) 00:38:19 ID:???
どっちかというとオリジナルで作るより楽だから・・・ってのが大きかったりするけど

まぁ、フレームを踏襲しても中身がオリジナルだったらいいんじゃないか
579nobodyさん:2009/12/08(火) 01:12:56 ID:???
ソース解析しつつカスタマイズすることによって利用価値は跳ね上がる。
irc#cakephp(注:英語)でどんなにコアな質問してみても答えが大抵1分以内に返ってくる。
あそこはヤバい
580nobodyさん:2009/12/08(火) 01:22:23 ID:???
そのコアな質問とやらをちょっと書いてみてくれるか?
581nobodyさん:2009/12/08(火) 01:34:37 ID:???
CMSやブログ的なものを作るとき、例えば、サイドに表示させるパーツなんかはどうしてますか?
viewのエレメントからrequestActionするのが考え方としては一番スッキリするんだけど、
重くなっちゃいますかね?
582579:2009/12/08(火) 01:35:24 ID:???
>>580
そんなの書けるわけねーだろ!英語だぜ、英語!
中一の英語を読むことすらできねーのによ!!
ニューホライズンは一冊目で挫折したよ!!
ちょっと格好つけたかっただけだよ!空気嫁!!ったくよ!!
583nobodyさん:2009/12/08(火) 01:50:59 ID:???
>>581
requestAction自体がキャッシュ推奨
584ホクホクバカ ◆YMCgTirJag :2009/12/08(火) 02:00:24 ID:???
>>582
英語できないのにcake使えるなんてすごいと思う。
585nobodyさん:2009/12/08(火) 02:02:11 ID:???
>>580
なんでjoinモデルはAppModelのインスタンスで生成されるん?とか
とりあえずコアライブラリに突っ込んだ内容でも余裕。
586nobodyさん:2009/12/08(火) 02:05:13 ID:???
>>584
テーブルの命名とかどうするんだろう。
komentosとか?
587nobodyさん:2009/12/08(火) 02:06:12 ID:???
588nobodyさん:2009/12/08(火) 02:10:21 ID:???
komentsって英語入ってるよw
tyuushakusかな。
589nobodyさん:2009/12/08(火) 03:27:02 ID:???
>>581
俺はrequestaction。ちょうど今、ブログ作ってます。
にしてもカレンダーがネックだね。
ライブラリがいいのがない。
590nobodyさん:2009/12/08(火) 21:19:18 ID:???
Mediaプラグイン使ってる人いる?
アップロードするディレクトリをドキュメントルート外にしたりできるのかな?
591nobodyさん:2009/12/09(水) 04:13:39 ID:???
プラグインの中のconfig/core.phpの設定でできると思うけど。
592nobodyさん:2009/12/09(水) 11:53:52 ID:???
その場合、ブラウザからアクセスするときは
プログラムを通すのかな?

画像を大量に表示するときなんか、
すごい負荷かかりそうだけど・・・
593nobodyさん:2009/12/09(水) 12:15:39 ID:???
通さなきゃどうやって表示するんだ?
馬鹿か?
死ぬか?
594nobodyさん:2009/12/09(水) 12:21:34 ID:???
>>592

> 画像を大量に表示するときなんか、
> すごい負荷かかりそうだけど・・・

大量って、どのくらいの数を言っているのか?
595nobodyさん:2009/12/09(水) 12:27:26 ID:???
>>593
何をそんなに怒ってるのかわからないけど・・・

初回はプログラム通して、画像表示+キャッシュ生成
二回目からは直接表示、とか

mod_rewrite使えばできるでしょ。

>>594
アマゾンとかの検索結果くらい?
596nobodyさん:2009/12/09(水) 12:36:16 ID:???
サーバー負荷はアクセス数に左右される事が多いと思う。

大量の画像表示といっても、人気無いサイトなら負荷も一過的であまり問題にならないのでは。
それより、大量画像表示で気をつけないといけないのは、回線に負荷をかけるという事だよな
597nobodyさん:2009/12/09(水) 14:09:58 ID:???
>>596
回線負荷という意味では、etagとかHTTP304ステータスコード(Not Modified)とかを自前実装する必要があるよね
media pluginは使ったこと無いからどうなってるか知らんが
598nobodyさん:2009/12/09(水) 15:07:13 ID:???
命名規則で思ったんだが、テーブルがcategoriesの場合、
モデル名はcategory、プロパティでcategoriesテーブルを指定しないと駄目なんだよね。
599nobodyさん:2009/12/09(水) 15:18:03 ID:???
なにいってんの?こいつ
600nobodyさん:2009/12/09(水) 16:28:15 ID:???
>>593
死んできます
601nobodyさん:2009/12/09(水) 16:32:48 ID:5lohRgzm
waterの場合どうなりますか?
602nobodyさん:2009/12/09(水) 17:09:58 ID:/sBQ8GaX
boardと言うテーブルでモデルとコントローラを作ったのですが
Error: Database table boards for model Board was not found.
と、boardの複数形boardsテーブルを探しに行ってしまうようです。
複数形じゃなくてboardを見に行かせるにはどうすればいいのでしょうか?
603nobodyさん:2009/12/09(水) 17:13:16 ID:???
テーブル名をboardにすべきじゃないかなぁ
604nobodyさん:2009/12/09(水) 17:13:56 ID:???
間違った
テーブル名をboardsにすべきじゃないかなぁ
605nobodyさん:2009/12/09(水) 17:19:38 ID:???
var $useTable = 'board';

糞な掲示板なんか作る前にマニュアル読むかシネ
606602:2009/12/09(水) 20:35:39 ID:???
>>605
できました。ありがとうございます。
CakePHPってMS SQL Serverとあんまり愛称よくないですね・・・
改善してほしいな
607nobodyさん:2009/12/09(水) 20:43:40 ID:???
どこがどう相性悪いのか具体的に
608602:2009/12/09(水) 20:51:30 ID:???
Warning (2): mssql_get_last_message() expects exactly 0 parameters, 1 given [CORE\cake\libs\model\datasources\dbo\dbo_mssql.php, line 407]
とか出たり。
lastError()のmssql_get_last_message()のとこコメントアウトしてreturn;しちゃいましたけど・・・
609nobodyさん:2009/12/09(水) 20:57:19 ID:???
↑最高にアホ
610nobodyさん:2009/12/09(水) 21:09:35 ID:???
>>592
メディアをドキュメントルートから外すのは普通にやると思うよ。
そのため(ってわけでもないけど)にcakephpにメディアビューも内蔵されてるんだし。
611nobodyさん:2009/12/10(木) 00:07:13 ID:???
>>610
メディアビューで、サムネイル画像50枚くらい一度に表示したら、
ちょっともっさりしてたよ。

やっぱキャッシュは必須かも。
612nobodyさん:2009/12/10(木) 00:19:57 ID:???
>>611
サイトのポリシーにもよるだろうけど、
普通に画像を置くより明らかに重くなるのは目に見えてるしね。

俺はダウンロードのカウントが必要だったり、
ACLでアクセス制限したかったりそういう部分ぐらいしか使わないけど。
613nobodyさん:2009/12/11(金) 11:26:59 ID:???
コントローラからもシェルからも使いたい処理って、
どこにまとめてますか?

シェルからコンポーネント使うのもバッドノウハウっぽいですし・・・
614nobodyさん:2009/12/11(金) 12:57:55 ID:???
モデルに書くというのは?
615nobodyさん:2009/12/11(金) 13:15:32 ID:???
>>614
現在はその方法にしてます。
でもモデルに関係しない処理もあるので・・・

あと、コントローラからシェルを呼んだりすることもできるんでしょうかね?

何かの登録処理後、さっそく一回目のCRONを実行する、
みたいな処理を想定しているのですが・・・・
616nobodyさん:2009/12/11(金) 13:27:46 ID:???
exec()とかで呼ぶんじゃダメなの?
いや俺cakeのシェル使った事ないから専用の呼び方があるのかどうかは知らないけど。
617nobodyさん:2009/12/11(金) 14:57:03 ID:???
exec("/path/to/cake/console/cake -app /path/to/app task_name arg1 arg2 ...");
って感じかねー普通に。
618nobodyさん:2009/12/11(金) 17:51:36 ID:???
保存の前に確認画面を挟むとき、やはり確認画面用のctpファイルを作ることになりますか?
Cool!なやり方はありますでしょうか?
619nobodyさん:2009/12/11(金) 18:14:38 ID:???
modelとvendorに書いてる。
shellから使うときもあるかも。な処理はコンポーネント化しないようにしてる。

shell起動は、上にも書いてある用に``とかexec系だけど、
バックグラウンドで処理して欲しいと気が多いから(つまりshellの返答を待って欲しくない)
その時は/dev/nullと&使って呼び出してる
620nobodyさん:2009/12/12(土) 04:39:04 ID:???
adminをrootsで指定して、

http://localhost/admin/host/modify/[ID名]
として、その中でformを
<?php echo $form->create('', array('method' => 'post', 'action' => 'regist', 'enctype' => 'multipart/form-data', 'url' => array('admin' => true))); ?>

こんな感じで指定すると、なぜか
actionが
/host/regist/admin:1
となってしまいます。

なぜか、$formの中の$option['action']['id']に、'admin' => trueが1として入ってしまい、
adminがprefix扱いでなくなってる。。。
[ID名]を入れなければ正常なんですが・・・

散々迷走して、
'url' => array('id' => '', 'admin' => true)
と追加すれば、
正常に動作することがやっとわかったんですが、

これは一体なぜ???

不可解です。。。
621nobodyさん:2009/12/12(土) 12:42:02 ID:???
しかし、いつになっても、強敵はフォームヘルパーだねぇ。
順調に開発が進んでいると思いきや、
ちょっと複雑なフォームになると、もうにっちもさっきもいかなくなる。。。

でも、バリデーションというめんどくさいフォローを考えると
それでも、ヘルパーを使い続けてしまう・・・

リスト形式のページで、チェックしたレコードだけ、処理をしたい。
とか書こうとしているのにうまくいかん(+_+くそーー
チェックボックスだけで3時間はつぶしているぞー
622nobodyさん:2009/12/12(土) 13:55:41 ID:???
>>621
複雑なフォーム というのはユーザビリティも悪くなるので
フォームヘルパーで対応できるようなフォームを作るといいと思うんだけど。
どうかな。
623nobodyさん:2009/12/12(土) 14:23:04 ID:???
>>620
へえ、それで解決するんだ。
以前さんざんはまって、結局$paramsのURLをそのまま書き出したよ。

formヘルパーの逆URLルーティングはID絡むからか通常の$html->url()とは挙動が違うんだよね。
624nobodyさん:2009/12/12(土) 18:06:21 ID:???
なんかそのへんのことが整理されてなくて
Cakeめんどくせえなあ
っておもう
625nobodyさん:2009/12/12(土) 22:10:57 ID:d/+O720A
他にもあるぞ
626nobodyさん:2009/12/13(日) 22:39:17 ID:???
おら、何かワクワクしてきたぞ!
627620:2009/12/16(水) 00:15:50 ID:???
>>623
きっとできるはずだ!と信じたけど、できなくて、、
でも、やっぱオープンソースの強みだね。
いざとなったらソースを見て回避方法を探せる。

同じidだけど、urlのidとactionのidがcakeの中で混同しているっぽいのよね。
idを消すと動くから。
だから、urlから必要のないidを消したら使えるんじゃないかしら。
と思って消す方法を探してみた。
けど、やっぱ階層がもういっこ深くなるとだめそうやね・。・・
628nobodyさん:2009/12/17(木) 21:07:57 ID:???
おっす
cakePHPってどう?いい感じ?
629nobodyさん:2009/12/17(木) 21:33:56 ID:???
>>628
ちっす
それなり
630nobodyさん:2009/12/18(金) 12:14:10 ID:???
すみません、質問です。
newするときなんですけど、クラス指定でなく、クラス名指定でできないものですか?

たとえば「Test」modelをnewするときは普通は
$model = new Test();
としますが、これを
$model = new Model('Test'):
みたいな感じで、クラス名の文字列を指定すると、そのクラスのインスタンスが生成されるようにしたいのです。

カスなのでググってもわかりませんでした。このカスにどなたか教えてくださいませ。
631nobodyさん:2009/12/18(金) 13:01:25 ID:???
>>630
つ $User = ClassRegistry::init('User');
632nobodyさん:2009/12/18(金) 13:36:00 ID:???
>>631

ありがとうございました!こんな便利な方法があるのですね!勉強になりました!
633nobodyさん:2009/12/22(火) 02:18:31 ID:???
googleにキャッシュされないんだけど仕様?
634nobodyさん:2009/12/22(火) 03:08:50 ID:???
このスレにその質問で答えが返ると思ってるのは貴方の仕様?
635nobodyさん:2009/12/22(火) 09:04:25 ID:???
>>633
ヘッダーになんか書いてない?
636nobodyさん:2009/12/28(月) 17:58:10 ID:???
>>633
ヘッドになんにも入ってない?
637nobodyさん:2009/12/29(火) 09:52:46 ID:???
ヘッドに肉って書いてない?
638nobodyさん:2009/12/29(火) 14:36:18 ID:???
牛脂
639nobodyさん:2009/12/29(火) 22:40:01 ID:???
---
http://cakephp.org/
PHP framework
---
って文章をautoLinkUrlsさせると、PHPまでリンクになっちゃうんだけど、
改行コードもリンクされるのは仕様?
コアのコード読んでみたんだけど、preg_replace_callbackがイマイチ理解できなくて
どの辺を修正するべきかよくわからん。
640nobodyさん:2009/12/31(木) 13:12:15 ID:???
フォームヘルパーを使っているのですけど、validationを組んで、エラーがあると、
元の画面に戻ってくるのですが、
fileコンポネントはデータがクリアされてしまいます。
セキュリティの関係でたぶん引きづくのは無理かなーとかんぐって、
今はsessionで保存しておいてvalidationで差し戻しされたときはそこから呼び出すことに
しようかなぁ。と思っているんでけど、fileが空欄の表記になってしまうのが難点・・・

なんかもっと画期的な、とか、定石な手段をご存知だったら教えてくださいー。
みんなはどうしてるんだろう。
641nobodyさん:2009/12/31(木) 15:59:32 ID:???
>>640
fileはvalueを指定できないからね。ページ遷移してる限りfileを入れた状態で
表示するのは難しいのではないでしょうか。
できるかわからんが、アップロードだけは完了させてしまいfileは表示しないとか?
642nobodyさん:2009/12/31(木) 16:39:52 ID:???
CakePHPのページからCakePHP1.2の最新版 cake_1[1].2.5.zip
http://cakeforge.org/frs/?group_id=23&release_id=449
をダウンロードし設置したら、バージョン表示が「1.2.4.8284」でした。
これで正しいのでしょうか?
また、1.2.5があるのなら、どこからダウンロードすれば良いのでしょうか?
643nobodyさん:2009/12/31(木) 18:05:08 ID:???
>>640
validationエラー時にアップロード済の場合、
ファイル名とかサムネイル + 削除リンク表示。
削除リンクをクリックするとfileが表示されるとか。

fileのvalueを指定はセキュリティ的に無理。

cake関係ないけど。
644nobodyさん:2009/12/31(木) 18:16:55 ID:???
>>642
http://github.com/cakephp/cakephp1x/blob/master/cake/config/config.php
たしかにそうみたいだね。

cake/VERSION.txt には 1.2.5って書いてあるから、それで確認すればOK
645nobodyさん:2009/12/31(木) 19:31:56 ID:???
>>644
ありがとうございます。1.2.5で間違いないようですね。安心しました。
09/9/8に1.2.5がリリースされているのですね。
http://bakery.cakephp.org/categories/view/1
/cake/config/config.phpを自分で1.2.4.8284→1.2.5に変更しておきました。
1.2.5.と表示される様になりました。
646640:2010/01/04(月) 00:11:40 ID:???
>>643
>>641

ありがとん。
アップロードは必須項目なので、
結局、ファイルを指定して、サブミットしたら、
バリデーションで差し戻し食らっても、画像だけは、
プレビュー画面を表示して、アップロード済みにすることにしました。
変更したければ、もう一度ファイルを指定して、アップロードしなおす
という感じで。。。

なんとか様になりました。ありがとー

実装直後、
アップロード→セッションに保存
した直後
セッションから呼び出し→画面表示(別URL)

という処理を作ったら、書き込んだ直後のセッション情報が
別のアクションから呼び出せない。
という現象が発生していて、1/4日ふっとばしたんだけど、
一回休憩して、気合を入れて原因を解明するぞー
と意気込んだら、、、
バグが消えて、正常に表示されるようになってました。。

不思議すぎます・・・
647nobodyさん:2010/01/04(月) 16:34:28 ID:uJF3g7Nl
コントローラで$this->set("result",$result);して、ビューテンプレートにresultを渡した場合、
<?=$result ?>だと表示されないんだけど、なんでかな?

この部分を<?php echo $result ?>に変えてみると値が描画されるからresultに値は入っているみたい。
648nobodyさん:2010/01/04(月) 17:25:49 ID:???
>>647
php.ini short_open_tag = On
http://shoyu-ramen23.jugem.jp/?eid=125
649nobodyさん:2010/01/04(月) 18:11:00 ID:uJF3g7Nl
>>648
ズバリです。
本当に助かりました。ありがとうございます♪
650nobodyさん:2010/01/04(月) 18:23:26 ID:???
>>649
オレもViewは<?php echoの略記を使って書くの好きだなあ。
<?= $form->create('Post', array('action' => 'add', 'type' => 'post')); ?>
  タイトル:<?= h($form->value('Post.title')); ?><br>
       <?= $form->hidden('Post.title'); ?>
  本文:<?= h($form->value('Post.body')); ?><br>
     <?= $form->hidden('Post.body'); ?>
  <?= $form->submit('戻る', array('name' => 'data[Post][mode]')); ?>
  <?= $form->submit('Save Post', array('name' => 'data[Post][mode]')); ?>
<?= $form->end(); ?>
651nobodyさん:2010/01/04(月) 18:33:54 ID:???
省略記号使うとどこからともなく変なのが沸いて来たりするから・・・
652nobodyさん:2010/01/04(月) 19:11:28 ID:???
<?= の省略記号を使うとshort_open_tag = On してない環境で動かない事の他に
どんな悪いところがあるの?
653nobodyさん:2010/01/04(月) 19:34:32 ID:???
>>650
俺も好き。あんまり推奨じゃないみたいだけど、
まぁ何かあったら <?= を <?php echo に置換すりゃいいだけだし。

>>652
推奨しませんよ ってことぐらい。
654nobodyさん:2010/01/04(月) 20:09:48 ID:???
>>652
稼働安定性が悪い場合がある。とか意味不明なエラーにハマルとかある???
655nobodyさん:2010/01/04(月) 21:18:57 ID:???
ブログチュートリアルでCake勉強してます。
http://book.cakephp.org/ja/complete/219/Blog
view($id = null)の$id = nullってどういう動作を書いてるんですか?
view()呼び出し時に$idを初期化(null)すると考えたのですが、せっかく読込んだ引数を
初期化するのもおかしいし、delete($id)は$id = nullになっていない事も説明つきません。
よくわかりません。だれか教えてください。

function view($id = null) {
function edit($id = null) {
function delete($id) {

function view($id = null) {
  $this->Post->id = $id;
  $this->set('post', $this->Post->read());
}
656nobodyさん:2010/01/04(月) 21:39:41 ID:???
>>655
read()メソッドの中にこんな記述がある。
ttp://api.cakephp.org/view_source/model/#line-1028

if ($id !== null && $id !== false) {
  $this->data = $this->find('first', array(
   'conditions' => array($this->alias . '.' . $this->primaryKey => $id),
   'fields' => $fields
  ));
  return $this->data;
} else {
  return false;
}

editメソッドに$idが指定されてなかった場合、read()メソッドが返す値をfalseにしたいから、
仮引数が与えられてなかった場合にnullを代入するようにしているんだと思う。
657nobodyさん:2010/01/04(月) 22:18:18 ID:???
>>656 Thanks.
やはりfunction edit($id = null) { はeditメソッドが呼び出されたら$id = nullで初期化し
それから、あれば引数の値を取り込むんだね。納得しました。

また、Bakeが自動生成したソースを見てみたらfunction delete($id = null) { になってた。
http://book.cakephp.org/ja/complete/219/Blog
ブログチュートリアルのdelete($id)が間違いぽいね。
658nobodyさん:2010/01/05(火) 22:35:00 ID:GyjRQCtP
zendからcakeに移ったが
やばいね!cake!
こんなフレームワークならZ・E・N・D使うわwwwwwwwwwwwwwwwwwwwwww
659nobodyさん:2010/01/06(水) 00:48:10 ID:???
>>658
どうぞ zendにお戻りください。引き止めはしません。
サヨナラ。
660nobodyさん:2010/01/06(水) 01:00:19 ID:???
調べてから移れ
661nobodyさん:2010/01/06(水) 12:21:08 ID:???
zendの方がヤバくね?
プラグイン入れないと殆ど使えない
ってか、PHPが生すぎる
662nobodyさん:2010/01/06(水) 13:10:36 ID:5N2miMbo
あの・・・私ね、この前までZendFramework使っていたんですけど
最近、他のフレームワークが気になって試しにcakephp(笑)インストールしたんです。

なんだろ、cakephpって浅いんです(笑)
function とか varとか・・・
なんでもarray(
PHP4が使う糞フレームワーク

>>661
プラグイン入れないと使えない?
てめぇのケツにプラグインさしとけwwwwwww
PHPが生すぎるってPHPで作られたフレームワークに向かって生wwww
663nobodyさん:2010/01/06(水) 13:23:55 ID:???
その浅さやシンプルさがcakeのいいところだろ
664nobodyさん:2010/01/06(水) 13:27:58 ID:???
人間としての浅さが見える文章で微笑ましいですね
665nobodyさん:2010/01/06(水) 13:37:24 ID:5N2miMbo
>>663
おまえ悪口言われているよ><

俺がcakephpをPHP5で作るならZendFramework使うわwwwwwwww
666nobodyさん:2010/01/06(水) 13:39:26 ID:???
664は662へのレスでしたとさ。
667nobodyさん:2010/01/06(水) 13:49:23 ID:???
ageてるレスはスルーでたのむ
668nobodyさん:2010/01/06(水) 15:49:06 ID:???
どれも使えない私はどうすればいいdすか?^^;
ZendもCakeも難しいです〜><
669nobodyさん:2010/01/06(水) 16:00:01 ID:???
チュートリアル10回やんなさい
670nobodyさん:2010/01/06(水) 17:54:41 ID:???
ここはcakephpのスレです。zendはzendスレでお願いします。
671nobodyさん:2010/01/06(水) 22:48:01 ID:???
zendも好きだけどcakephpもやっぱり好きで何かしら影響を受けてる。
cakephpのmodel::find()メソッドはよくできてると思うんだ。
zendのモデルにselect系の問い合わせメソッドを実装するときも、
cakephpのfind()の引数書式っぽく使えるように書いちゃう。

/**
* @param string mode
* @param array option
*/
public function getHogeList($mode,$option)
{
  〜〜
}


そういえばフレームワークを触りだしてからsql書かなくなったなあ。
いい傾向なのか悪い傾向なのか。。。
672nobodyさん:2010/01/07(木) 00:33:07 ID:hFey0NAx
おもろいよCakeは
673nobodyさん:2010/01/07(木) 04:44:13 ID:???
Table A, Table B, Table C の三つのテーブルがあって
A.b_id, B.c_id というリレーショナルを行っています (二つとも belongsTo)

A を扱うモデルの find で recursive=2 の設定で C テーブルのカラムまで取得出来るのですが
conditions の検索条件で 'C.hoge' => '123' のような事は出来ないのでしょうか?

B までのカラムなら検索条件に含める事は出来るのですが リレーションのリレーション以上のテーブルの検索条件が行えなくて困ってます
674nobodyさん:2010/01/07(木) 07:38:43 ID:???
あれだな。
生PHPは徒歩、cakeは車。
目的地まで行くのはめちゃはええけど、
渋滞にはまるとまったく進まないし、
目的地についても、車止めるところを求めてさ迷う
675nobodyさん:2010/01/07(木) 21:28:05 ID:???
健康の為に1日1万行歩きましょう
676nobodyさん:2010/01/08(金) 03:52:34 ID:???
Hetemlの共用SSL環境下では、CakePHP使えないのかな?

設定をあれこれ変えても、どうにもCSSなどの設定が合わないよ。使えた人、いる?
677nobodyさん:2010/01/09(土) 10:07:51 ID:???
>>675
まあ一理ある。
時間と手間が許せるなら
足で歩いたほうが色々といいよな・・・
678nobodyさん:2010/01/09(土) 11:01:06 ID:???
>>675  >>677
オレは、車の長所短所、危険性を良く理解し
交通事故を起こさない様に常に注意し、便利な「車」を最大限に活用してるなあ。
やっぱ「車」のない生活は考えられない今日この頃です。
679nobodyさん:2010/01/10(日) 11:35:01 ID:???
>>676
SSLって導入するにも手間で面倒だし、
一般ユーザーはSSLのこと気にすら止めてない。
しかも情報が流出するのはSSL関係なしで流出するから必要ないような気もするけど
どうなんだろ。
680nobodyさん:2010/01/10(日) 11:44:37 ID:???
仕事でサイト作る時は、何か問題が起きた時にSSLもやってないのかよ!
と必ず突っ込まれるので、とりあえず設定するという感じだよね
681nobodyさん:2010/01/10(日) 18:17:38 ID:???
SSL = Secret service line

あまり知られてないんだがな豆知識
682nobodyさん:2010/01/10(日) 21:01:22 ID:???
なるほど、SE=Service Engineerみたいなもんか
以下、ネタにマジレス禁止
683nobodyさん:2010/01/10(日) 21:23:16 ID:???
興味本位でUML図みたいなの書いてるんだけど
例えばpostモデルがあったとして、

・ユーザーがページをクリックすると、postデータ一覧が表示される
 [ユーザー] --ページをクリック--> [controllers/posts_controller] --function:view--> [views/posts/view.ctp]
                                        ├--データ取得--> TBL[posts]
                                        └--ページを返却--> [postデータ一覧ページ]

何が何を呼ぶか、みたいな関係図を書くとこんな感じになるとおもうんだけど
この場合、modelってこの図には絡まないの?
 ・リレーション定義
 ・登録時のバリデーション
なんかは明示的にモデルに書くからわかるんだけど、
独立したモデルから単にデータを引っ張ってくる場合に、関係図的にモデルはどう絡むんでしょうか。
絡まない、が正解?
684nobodyさん:2010/01/10(日) 21:33:44 ID:???
書き込んでから落ち着いて考えたら、自己解決しました。失礼しました(ヽ'ω`)

・ユーザーがページをクリックすると、postデータ一覧が表示される
 [ユーザー] --ページをクリック--> [controllers/posts_controller] --function:view--> [views/posts/view.ctp]
                              ├─function:find('all')--> [models/post] --> TBL[posts]
                              └─ページを返却--> [postデータ一覧ページ]
685nobodyさん:2010/01/11(月) 12:02:25 ID:???
cakephpで掲示板サイトを作ろうと思っています

書き込みにトランザクションを使おうと考えてマニュアルを見ると
saveAll()が使えると書いてありました。
しかしこれはひとつのモデルにしか使えないのでしょうか。
いくつかのモデルで書き込みを行ってからコミットしたいのですが
方法があれば教えて下さい。よろしくお願いします。

686nobodyさん:2010/01/11(月) 13:11:26 ID:???
>>685
saveAllは「関連づけされた複数モデルのデータの保存」か「ひとつのモデルの複数データの保存」に使う。
それ以外の場合は、自前でトランザクションを発行すると良い
687nobodyさん:2010/01/11(月) 14:00:16 ID:???
>>686
これさ、「ひとつのモデルの複数データの保存」出ない時もsaveAll()使えば、トランザクションの事気にしなくてもいいんでない?
688nobodyさん:2010/01/11(月) 16:27:36 ID:???
トランザクションってなんですか?
馬鹿でも分かりやすい説明お願いします
689nobodyさん:2010/01/11(月) 16:36:29 ID:???
馬鹿には知らないほうが良いことがある
690nobodyさん:2010/01/11(月) 16:40:22 ID:???
トランザクションってなんですか?
天才でも分かりやすい説明お願いします
691nobodyさん:2010/01/11(月) 16:42:43 ID:???
天才はトランザクションという文字を見ただけで全てが分かる
692nobodyさん:2010/01/11(月) 16:46:49 ID:???
英語がわからないときには、単語を分割するとわかりやすい
この場合、トランとザクションを調べれば済む
693nobodyさん:2010/01/11(月) 16:53:27 ID:???
説明できないんだろwwwwwwwwwwwwww
まじCakePHP使いはm9(^Д^)プギャーが多いなwwwwwww
694nobodyさん:2010/01/11(月) 16:55:37 ID:???
理解しなくても作れるからな。その代りセキュリティーホールがいっぱい(笑)
695nobodyさん:2010/01/11(月) 17:09:46 ID:???
作れてないじゃんw
696nobodyさん:2010/01/11(月) 18:30:40 ID:???
>690
ヒント:今年の干支
697nobodyさん:2010/01/11(月) 21:32:04 ID:???
山羊だっけ?
698nobodyさん:2010/01/11(月) 22:13:24 ID:???
トランザクションって
コミットとかでしょ?

SQLのことだから別に知らなくても問題ない。
cakephpが勝手にやってくれるし。
699nobodyさん:2010/01/11(月) 22:38:11 ID:???
700nobodyさん:2010/01/11(月) 23:25:43 ID:???
cakephpが勝手にやってくれるし。
701nobodyさん:2010/01/12(火) 22:26:59 ID:???
イヤン・・・ハクション
702nobodyさん:2010/01/12(火) 23:06:39 ID:???
cakeって頭いいんだな
703nobodyさん:2010/01/12(火) 23:23:26 ID:???
自律型フレームワークなんだな
704nobodyさん:2010/01/13(水) 01:14:38 ID:???
オレはMS Accessっ子、ブリオクエリっ子で、RDBは線で結ぶ方法しか知らなくて、SQLは
読めも書けもしない。だからCakePHPのfindとか、saveとかメチャ好きなんだけど、
SQL書ける人は、「Cakeのfindとかsaveとか覚えちゃられねーよ。
汎用性のあるSQLで書くのが一番じゃね。」と言う人も多いのかなあ?
それでもヤッパCakeのfindとかsaveとかは、直感的で効率的で便利と評価されるのかなあ?
705nobodyさん:2010/01/13(水) 01:23:13 ID:???
普通に入れたり出したりしてる分には楽だけど、集計とかロジックとか入れたい時はむしろ邪魔に感じるな
生SQLをqueryに投げた時、結果の格納のされ方にクセがあってちょっと戸惑った
706nobodyさん:2010/01/13(水) 03:31:13 ID:???
>>704
お前の文体嫌いじゃないぜ
SQLについては直感的というか効率&汎用性を考えて使い分けることもあるという程度かな
707nobodyさん:2010/01/13(水) 03:43:15 ID:???
SQLとか楽に処理してくれなら
わざわざ覚える必要無いだろ

もう俺SQL構文愛してぺろぺろしたいくらいですって言うなら別だが・・
708nobodyさん:2010/01/13(水) 14:15:50 ID:???
union 使ったり、
めんどくさい条件とか使うときは生SQL。

ちょとしたデータの操作はcakeを使ったます。
709nobodyさん:2010/01/13(水) 15:45:03 ID:???
質問なのですが、皆さんはテーブルの結合を行いたいとき、プログラム内で随時
JOINをしているのですか?

俺はMySQL側でビューを定義して、そのビュー用のmodelを定義して、それ経由で
データの取得をしてます。

プログラム内でjoinのほうが各段に速いとか、明確な優位性はあるんでしょうか?
710nobodyさん:2010/01/13(水) 22:00:48 ID:???
cakePHPでなんか作って配布する場合
appフォルダのみ配布するべきか、cakeも含めたフォルダを配布する
どっち?
711nobodyさん:2010/01/13(水) 23:12:16 ID:???
>>710
appとvendorsに何も入っていない時のcake本体をzip圧縮した場合のファイルサイズは約1.6MB
vendorsにも何か入れる場合が多いし、高々cake本体1.6MBだから、cakeも含めたフォルダを
配布するなあ。cakeはhtdocsの下へ配置すればどこでも動くので、この配布の方が安心で手間
いらずだと思う。
712nobodyさん:2010/01/14(木) 00:17:27 ID:???
>>711
アザーズ!
landとかいう無料サーバーにCakephpアップしたら時間かかったから
気になったんだよぇ〜
713nobodyさん:2010/01/14(木) 12:15:33 ID:???
Cakeはリリースバージョンによって、安定板パッケージでもイロイロエラーを含んでいるので、
丸ごとパッケージにする。

※以前、Authコンポーネントでうまく認証がかからないエラーがあった
714nobodyさん:2010/01/14(木) 16:10:39 ID:???
>>713
アザーズ!
715nobodyさん:2010/01/15(金) 18:42:50 ID:???
$_POSTの値の文字コードをチェックしたり変換する場合、どこでこの処理書いてる?
716nobodyさん:2010/01/15(金) 18:45:07 ID:???
>>715
appコントローラーの beforefilter に一票。
717nobodyさん:2010/01/15(金) 18:48:19 ID:???
>>716
なるほど継承してすべてのコントローラに対応できますね
718nobodyさん:2010/01/16(土) 16:49:23 ID:???
http://bookuma.com/
ケータイでこのサイト見てたらエラーが表示されたんだけど、ディレクトリ構成がもろにcakephpだった
719nobodyさん:2010/01/17(日) 14:58:10 ID:???
CakePHP 1.3.0-beta キタ━━━━━━(゚∀゚)━━━━━━ !!
http://bakery.cakephp.org/articles/view/cakephp-1-3-0-beta-has-landed
720nobodyさん:2010/01/17(日) 16:43:43 ID:???
今までのCakePHPと CakePHP1.3は別物ですのでご注意を

というより改名すべき

焦げちゃったPHPとかにね^^;

721nobodyさん:2010/01/17(日) 16:49:52 ID:???
クッキーPHPとか?
722nobodyさん:2010/01/17(日) 21:32:18 ID:???
http://blog.ecworks.jp/archives/861
この辺を見ると1.3はそれほど変わった感じもないけど
723nobodyさん:2010/01/17(日) 21:34:00 ID:???
cakephpのバージョンが上がるたび、覚えにくくなる。
技術の進歩とともに自分の老化が。

バージョンアップに対応しなくていいやって思ったら技術者としてだめだよね。
724nobodyさん:2010/01/17(日) 23:35:23 ID:???
>>723
バージョンごとの差異を覚えるのは俺も苦手
まっさらな状態から覚えた方が覚えやすいよ
725nobodyさん:2010/01/18(月) 00:39:57 ID:???
>>720
それはcake3の話なのでは?
726nobodyさん:2010/01/18(月) 01:09:24 ID:???
新しいJsHelperとやらでJQueryっぽいメソッドチェイン出来るっぽいね
激しく期待。つか標準でscriptaculous以外をサポートしたのって1.3からだよね

$js->get('#foo')->event('click', $eventCode);
727nobodyさん:2010/01/18(月) 01:53:18 ID:???
JQuery用ヘルパー作ってたけど無駄になりそうだ。

でもJQueryをCakeのAjaxHelperの書式に合わせようと思ったら結構無理があったから、
標準でこういう書き方できるようになるならいいや。
728nobodyさん:2010/01/18(月) 01:56:16 ID:???
JQueryって書くとJavaっぽくなるな
729nobodyさん:2010/01/18(月) 12:20:16 ID:???
?
730nobodyさん:2010/01/18(月) 16:10:52 ID:???
小文字にしろ、ということだろう
731nobodyさん:2010/01/18(月) 22:17:03 ID:???
mootoolsの事も忘れないでください。
732nobodyさん:2010/01/20(水) 19:42:54 ID:???
最初のsqlテーブルの組み方が重要だねこれ。
ミスるphpコードが複雑になる。。。
733nobodyさん:2010/01/20(水) 23:25:07 ID:???
>>732
フレームワークは規約を守ってナンボよ。
734nobodyさん:2010/01/21(木) 00:44:08 ID:???
DBのデザイン間違ってたらどうにもならない
735nobodyさん:2010/01/21(木) 00:46:10 ID:???
まあ自己中にはフレームワークはあわんだろうな
736nobodyさん:2010/01/21(木) 18:43:26 ID:???
cakeに限った話じゃないけど
function getEmail()

とか

function setApple()
とか

function のあとの、大文字にした方がいい部分ていうのは明確な決まりがあるのかな。
737nobodyさん:2010/01/21(木) 18:47:39 ID:???
明確な決まりって言うか、読みにくいでしょ

getemailとか
setapple

---------------


getEmail
setApple
738nobodyさん:2010/01/22(金) 02:16:00 ID:fZt9z1/I
基本キャメルケースだけど、別にアンダースコアでもいいと思う
739nobodyさん:2010/01/22(金) 11:25:18 ID:???
Pearのコーディング規則を参考にするといいかもね。

http://pear.php.net/manual/ja/standards.naming.php
740nobodyさん:2010/01/22(金) 16:34:06 ID:???
cake使ってんなら参考にするのはこっちじゃね?
http://book.cakephp.org/view/509/Coding-Standards
741nobodyさん:2010/01/23(土) 21:19:58 ID:???
>>737-740
ありがとう。
742nobodyさん:2010/01/27(水) 00:02:16 ID:???
入れてみたけどIDEって何使うのがいいのかな?
Visual stadioでしか開発した事ないのでテキストエディタ
まんまでは違和感が。
743nobodyさん:2010/01/27(水) 02:24:26 ID:???
VSからならPDTがいいんじゃね。重いけど
744742:2010/01/27(水) 07:23:15 ID:???
>>743
Eclipse+PDTですかね。レスサンクス。

PDTとcakeを同じサーバーにインストする方法は簡単だけど、
サーバーと開発環境がリモートだと結構設定が難しそうですね。
調べないと……。
745nobodyさん:2010/01/27(水) 12:10:53 ID:???
>>743

おれ、netBeans使ってる。
cakeのメソッド類を入力補完リストに表示させるため方法は、Eclipseの方法がそのまま使えた。
Eclipseより快適です
746nobodyさん:2010/01/27(水) 20:22:02 ID:???
リモートデバッガならzend studioなのかな。xdebug?
俺はマカーにスイッチしてからはTextMate一本になった。
cakeのsnippetも本家theChawでgitレポジトリが作られてるし。オススメ。
マカーにスイッチした際は是非。日本語怪しいけど。
747nobodyさん:2010/01/28(木) 14:53:03 ID:???
トランザクション用に、select for updateを発行したいのですが、Cakeでどうにか実現できる方法はありますか?
748nobodyさん:2010/02/01(月) 17:10:22 ID:???
IDE使ってる人多いのね
自分は普通にviだわ

公式サイトのcompareページはnoindexしてほしい
749nobodyさん:2010/02/02(火) 00:14:38 ID:???
ページ毎に表示変えたいんですけどどうすればいいですか?
エレメンとでファイルを呼び出すって感じですか?
750nobodyさん:2010/02/02(火) 06:59:25 ID:xXDrlP2U
Cakephpってプロジェクトに
cakephpのファイルを毎回ぶち込んで使うって解釈でOk?

PEARみたいにPHPとかにインストールするんじゃなくて
751nobodyさん:2010/02/02(火) 09:08:23 ID:???
どこかを書き換えれば共通に出来る
752nobodyさん:2010/02/02(火) 09:30:11 ID:???
>>750
インストールではない(解凍のみで使用可能)
基本的には、webroot/index.phpとwebroot/test.phpの定数を書き換えれば、どこにでも置けるから共通化が可能
プロジェクト名も変更可能

でもオススメはシンボリックリンク使って定数の書き換えをしないようにすることかな
753nobodyさん:2010/02/02(火) 15:16:37 ID:zKiQz/op
共通にしちゃうと、特定のプロジェクトのみアップデートしたいときとかに困りそう
754nobodyさん:2010/02/02(火) 15:49:53 ID:???
>>753
んなこたーない
755nobodyさん:2010/02/03(水) 00:54:14 ID:???
>>753
やっぱCakeは本体は一つで共有で運用するのが基本でしょう。
756752:2010/02/03(水) 16:21:18 ID:???
なんと!
俺が異端なのかなあ?
ずっと前の勉強会で、ブルーオーシャンだかどこかも、個別にしてるって言っていた気がするんだけど。
「stableで作っても、全然stableじゃなかったりするのでアップデートするときに問題が起こるかも知れないので」
って説明してた気がする。
757nobodyさん:2010/02/03(水) 16:38:47 ID:???
俺も個別。
動作確認時からフレームワーク部分が変わってしまうとバリデーションを行うのが大変。
運用後は原則変えないようにしてる。
758nobodyさん:2010/02/03(水) 16:52:12 ID:???
>>756

>>752は おいらなんだが・・・
えっと、coreを共通にするって話と、アップデートを個別に行なうって話は別だと思うよ
基本的には最新バージョンにリンク先を向けておいて、必要に応じて旧バージョンに向けることにしてる
759753:2010/02/03(水) 17:57:26 ID:???
>>756で名乗り間違えました、サーセン
760nobodyさん:2010/02/03(水) 21:28:54 ID:???
>>758
Windowsサーバで運用してたので考え付かなかった。
確かにLinuxサーバとかだとそっちのほうがスマートだ。
761nobodyさん:2010/02/04(木) 10:09:41 ID:???
Windowsにもジャンクションってあるよ
762nobodyさん:2010/02/04(木) 21:37:40 ID:???
Paginatorを使った場合に、sidが上手く引き継げない問題が発生して、
いろいろとググってみたらこんなページを見つけた。

【CakePHP】session.use_trans_sid=1をCakePHPで使う場合の注意 | ECWorks Blog
http://blog.ecworks.jp/archives/525
【CakePHP】namedパラメータのセパレータについて皆さんにお聞きしたいこと | ECWorks Blog
http://blog.ecworks.jp/archives/531
"paginatorのURLをスマートに" フォーラム - CakePHP Users in Japan
http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=1860&forum=3

コロンがURL内に含まれていると外部サイトへのリンクとPHPが誤解してしまうせいで発生する問題らしいんだけど、
セパレータは本当にコロンのまんまでいいの?
RFC1738によればコロンは予約されてるからあんまり良くないらしいんだけど。
ブログの人がチケット投げたらしいんだけど、見つけられなかったので、その後どうなったのかがわからない。

http://www.google.co.jp/search?hl=en&q=inurl:page+2
ぐぐってみると、あんまりコロンでセパレートしてるサイトは無いみたいなんだけど
763nobodyさん:2010/02/05(金) 10:00:55 ID:???
>>762
ktalibrary使えば解決するよ
764nobodyさん:2010/02/05(金) 20:36:29 ID:???
>>763
一応言っておくか「宣伝乙」

まじめな話、そういう問題じゃないだろ
ケータイに限らず、URLにコロンが含まれていておkなのかという話なのだから
765nobodyさん:2010/02/06(土) 00:18:22 ID:???
誘導されてきました
Cakephpのモデルって
元からDBアクセスのためのメソッドが用意されてて
コントロール側でクラスを呼び出して実行すればOK?

モデルクラスは定義で使うのがメインって感じですか?
766nobodyさん:2010/02/06(土) 13:14:46 ID:???
>>765
そう。Controllerから
$this->User->find('all');
のように使う

モデルは、バリデーションルール他を書くだけでなく、ビジネスロジックを書くところとして使う
$this->User->originalMethod(); のように使えばよい
767nobodyさん:2010/02/07(日) 11:45:14 ID:???
>>3
このCakePHPで高速Webアプリ開発の本って尼で評判悪いな。
768nobodyさん:2010/02/07(日) 12:16:33 ID:???
あれは論外。
769nobodyさん:2010/02/07(日) 12:45:51 ID:???
>>767-768
2008/1/8発売 日本で始めてのCake本やないか。ゆるしてやれや。
日本初を評価してやれや。(いや世界初のCake単独書籍かもしれん。)
http://www.amazon.co.jp/dp/4774133418
770nobodyさん:2010/02/07(日) 13:23:41 ID:???
アレはそういうレベルの話ではないが、まあ、この辺でやめておく。
771nobodyさん:2010/02/07(日) 13:58:35 ID:???
CakePHPガイドブックは2007年発売だけどね
単独書籍としては2冊目のはず
772nobodyさん:2010/02/07(日) 14:22:25 ID:???
>>769
それでいまつくってるけど
<p><?php echo $form->input('Task/content') ?>
<?php echo $form->submit('タスクを追加') ?></p>


$html->inputになってる
古い版みたいだけど
773nobodyさん:2010/02/07(日) 14:24:49 ID:???
1.1対応だからしゃーない
1.2対対応のガイドブック、ポケットリファレンス、実践ウェブアプリケーションあたりが良い
774nobodyさん:2010/02/07(日) 15:29:38 ID:???
775nobodyさん:2010/02/07(日) 15:40:43 ID:???
>>771
ほんまや!CakePHPガイドブックは07/10/25発売や。
これが世界初のCake単独本や。スマソ
http://www.amazon.co.jp/dp/4839924317
776nobodyさん:2010/02/07(日) 15:51:39 ID:???
あきやんの本はアレだけどgihyoで連載してCakePHPを世の中に知らしめた功績がある
777nobodyさん:2010/02/07(日) 16:16:01 ID:???
>>776
俺もakiyanは偉いと思う クールな情報発信をしてくれてるもんな。
09/5/24
http://www.akiyan.com/blog/archives/2009/05/routesphp-cakephp-12.html
09/10/31
http://www.akiyan.com/blog/archives/2009/11/cakematsuritokyo2009-containable-behavior-lt.html
778nobodyさん:2010/02/07(日) 16:28:41 ID:???
akiyanがどうこうとは言っていないよ。
あの本は、構成とか編集がおかしいから論外だと言っているだけ。
779nobodyさん:2010/02/07(日) 20:11:26 ID:???
1.2.6のzipはダウンロードできますか?
tgzは落とせるので問題はないのですが・・・。
780nobodyさん:2010/02/07(日) 21:00:40 ID:???
>>779
2010/2/7 20:58現在、1.2.6 zipはダウンロード出来ませんでした乙
Windowsでもtgzは解凍すれば使えるのでしょうか?
781nobodyさん:2010/02/07(日) 21:21:04 ID:???
ググれカス
782779:2010/02/07(日) 22:43:52 ID:???
>780
確認していただき、ありがとうございます。

1.2.5のzipしか落としたことがなかったので
詳しいことは分からないですが、
tgzを解凍したファイル構成は異なるものだったので
cakePHPが初めてでなければ問題ないように思います。

1.2.6のzipはURLを直接たたくと落とせます
(リダイレクトで失敗するようです)。
783nobodyさん:2010/02/08(月) 01:03:10 ID:???
>>774
参考になるかも
ありがとう

784nobodyさん:2010/02/08(月) 17:14:15 ID:???
paginationって
/comments/view/10/page:2
みたいなURLが普通だと思うけど、
今試してみたら
/comments/view/10?page=2
とか
/comments/view/10/?page=2
でも動いちゃったんだけど、これって公式にサポートされてる機能?
785nobodyさん:2010/02/08(月) 17:51:15 ID:???
普通が逆だろ
Cakeが独自にルーティングしてるんだよ
786780:2010/02/08(月) 20:42:28 ID:???
>>782
1.2.6のzipはURLを直接たたくと落とせました。
http://github.com/cakephp/cakephp1x/zipball/1.2.6
助かりました。ありがとうございました。
787nobodyさん:2010/02/08(月) 22:01:02 ID:???
>>784
CakePHPのpaginatorの記法は>>784が言うようなのが普通でしょ?
俺も試してみたけど、どうやらcontroller側は>>784でも正しく解釈してくれるみたい
limitとか他のパラメーターもOKでページングも正しく動いた
どうやらnamedされたパラメータがなければGETパラメータを使ってくれるみたい
ただ、helper側はそれに併せてくれるわけではないので$paginator->next()とか使えば
基本のpaginatorの記法になるね
788nobodyさん:2010/02/08(月) 22:01:47 ID:???
一行目は>>784じゃなくて>>785だった
789nobodyさん:2010/02/08(月) 22:24:46 ID:???
いやWebのURLの大原則として?と&だろパラメタは
それをCakeが勝手に整形してるだけだから
790784:2010/02/09(火) 00:33:43 ID:???
>>789
スマートURLが基本なのにGETパラメーターでもきちんとpaginatorのパラメータとして扱われるって話だよ?
それとも?controller=commentsとかでも動くって話?
791nobodyさん:2010/02/09(火) 01:47:50 ID:???
いやだからCakePHPだって普通のWebあぷりけーしょんなんだからさ
792nobodyさん:2010/02/09(火) 03:18:32 ID:???
つうか、":"を使ったnamedパラメータの値に"?"を渡すとそこでリクエストパラメータが豚切れるのが気になる
2重3重にURLエンコードしても同じ。
?xxx=yyyがnamedパラメータとして使えるんなら、今度からそっちを使うようにする
793nobodyさん:2010/02/09(火) 03:50:25 ID:???
>>775
この本かったら序盤にDOS窓使ってBakeしろってかいてあったけど
Bakeってネットにアップするときとかにつかうわけ?
794nobodyさん:2010/02/09(火) 04:09:21 ID:???
$this->dataとかの
$thisって何をさしてるんですか?

ビューから送られてきた値?
コントローラーのこと?
795nobodyさん:2010/02/09(火) 07:28:51 ID:???
>>794
PHPのクラスについて勉強してください。
Cakeのお話ではありません。
796nobodyさん:2010/02/09(火) 08:22:32 ID:???
>>793
> Bakeってネットにアップするときとかにつかうわけ?
ちがうよ。グダグダ言ってないで動かしてみればすぐわかるじゃん。
動かしてみろよ。

>>775
> この本かったら序盤にDOS窓使ってBakeしろってかいてあったけど
てか、この本って「古典」だよ。古代のCakeについての歴史を勉強したいなら
とやかく言わないけど、現代はCakePHP1.2がstableだよ。
797nobodyさん:2010/02/09(火) 10:12:50 ID:???
>>794
場合によって違ってくる。
なのでコントローラーやビュー、モデルで
pr($this); をやりまくれば感覚的にわかってくるよ。
798nobodyさん:2010/02/09(火) 10:39:16 ID:???
>>797
場合によって違う理由を>>795で学んだほうがいいと思う
799nobodyさん:2010/02/09(火) 10:54:41 ID:???
>>792
最近同じようにnamedで/(スラッシュ)を渡そうとしたらダメだったんで
その部分は?でやることにした。

?xxx=yyyはnamedじゃなくて$this->params['url']でやってくるからそこから取り出せばいいよ。
800nobodyさん:2010/02/09(火) 11:14:54 ID:???
PHPやWebの仕組みを知らない奴はまずそっち勉強した方がいい
さすがにthisってなんですかとかUrlが?でも渡せて疑問とか
プログラマとしてどうかと思う
801nobodyさん:2010/02/09(火) 13:21:15 ID:???
コンポーネントでログインチェックを行い、
認証できない場合はrenderにてログインエラーページを指定していますが、render以降の処理(コントローラで定義している処理)が実行されてしまいます。
コンポーネントなのでreturnを使ってもコントローラに戻るだけですし、exitをするとrenderもされません。

コントローラでログインチェックするべきなのかもしれませんが、複数のページに実装するプログラムなのでコンポーネントにまとめています。
どのようにしたらその後の処理を行わないようにできるでしょうか?
802nobodyさん:2010/02/09(火) 13:36:27 ID:???
>>801
AuthComponentじゃないんだよね?

その前提で。
renderじゃなくて、redirectじゃないかな?
803nobodyさん:2010/02/09(火) 16:49:52 ID:???
Model User, Boardがあり、それぞれ、hasMany, belogsToの関係です

Userをfindした際、associationで複数個取得されるBoardを、条件で絞り込みたいのですが、
これはUserを取得した後、PHPで処理するしかないのでしたっけ?
804nobodyさん:2010/02/09(火) 17:39:56 ID:???
>>803
絞り込みをずっと使うならUserモデルのhasManyのBoardのconditionsを設定しておく。
でなければUser->bindModelで同じように条件を設定するかcontainableビヘイビアを使うとか。
マニュアルの「モデルを結びつける」の所はよく読んでおくといいです。
805nobodyさん:2010/02/09(火) 18:13:47 ID:???
apiドキュメント、翻訳されてるのは1.1のみで1.2は英語のみなんですよね?
806nobodyさん:2010/02/09(火) 19:26:23 ID:???
>>805
このあたりの事ならそうだね、長い文章じゃないし翻訳サイトかググればなんとかなる。
http://api.cakephp.org/class/html-helper
807nobodyさん:2010/02/09(火) 20:11:33 ID:???
>>804
なるほど
必要なとこだけbindModelで設定しなおす方法もありですね
ありがとうございます
808nobodyさん:2010/02/10(水) 01:25:31 ID:???
モデル、ビュー、コントローラってどうしてそういう呼び方になったの?
まあ、ビューは分かるとして、ほかは関係なくないのかな。
809nobodyさん:2010/02/10(水) 01:34:34 ID:???
ポカーン
810nobodyさん:2010/02/10(水) 01:53:55 ID:???
モデルはともかく、コントローラはそのままじゃないか
811nobodyさん:2010/02/10(水) 04:19:55 ID:???
モデルもデータモデルだからそのままだろ
812nobodyさん:2010/02/10(水) 04:41:53 ID:???
>>811
おぉなるほどね
813nobodyさん:2010/02/10(水) 06:51:33 ID:???
こんにちは。本日cakephpを始めました。
もしよければ質問させてくださいませ。

ロリポップサーバでwordpressを運用しております。
phpmyadminでcakePHP用のデータベースを新たに作成できませんでした。

この場合、wordpressとcakephpのデータが混在しないかなと心配なのですが、
それほど心配することはないでしょうか?
それとも、もう一つアカウントを契約してやらないと後悔することになるのでしょうか?
814nobodyさん:2010/02/10(水) 06:52:14 ID:???
◯ホール目っていうスレタイ、次から変えた方が良くないか

初見のときセキュリティホールだらけなのかと思ったぞ
ケーキの数え方にかけてるってのも伝わりづらいし
815nobodyさん:2010/02/10(水) 07:47:58 ID:???
おいおい、85なんて余裕で突破してるし
816nobodyさん:2010/02/10(水) 07:49:11 ID:???
誤爆った
817nobodyさん:2010/02/10(水) 08:26:52 ID:???
>>4
ガイドブックってもう品切なんだね。
他にいい入門書ないのかな。
818nobodyさん:2010/02/10(水) 08:58:36 ID:???
>>813
テーブル名にprefixをつけられる
たとえ複数のCakePHPを同一DBで使っても混在しない
819nobodyさん:2010/02/10(水) 08:59:38 ID:???
>>814
賛同を得られる対案だせば自然に変わると思うよ
820nobodyさん:2010/02/10(水) 09:14:14 ID:???
>>813

ありがとうございます!!
821nobodyさん:2010/02/10(水) 09:27:47 ID:???
プログラム始めてでPHPを勉強中です。
初心者用の参考書を数冊読み、ある程度の文法知識、簡単なフォーム、アンケートなどは
作れるようになりました。

はやくアプリを作れるようになりたいので、背伸びしてCAKEPHPをかじることに決めました。
CAKEPHPを使うにあたって、ここらへんは予習しておけ!という部分はあるでしょうか?


【現在の知識】
・PHPの基本的な文法知識
・MySQLの簡単な知識
・HTMLやCSSの基本的な知識
・エディタはPHPeclipseなどを使用中

【勉強予定】
・PDO(データベース)
・PHPのクラス

現在、ユーザー関数はなんとか理解できるのですが、クラスの理解があやふやです。
このオブジェクト指向の部分がわからないとCAKEPHPを使えないかと思い、悪戦苦闘中です。
822nobodyさん:2010/02/10(水) 09:33:23 ID:???
>>821
やる気だけあれば あとはキミ次第だよ
ここで聞く暇があったら、アプリをひとつでも多く作るんだ!
823nobodyさん:2010/02/10(水) 09:54:07 ID:???
>>821
クラスはまず基本を一読して、簡単なクラスでも書いてみればいい。
Cakeやるのにクラスは必須ではないよ。

Cake触ってからまたクラスについて勉強すれば理解が進んでるかもね。

>>822の言うとおりまずは作り始めて分からないところを補強すればいい。
824nobodyさん:2010/02/10(水) 10:00:18 ID:???
>>822
>>823

どうもありがとうございます!
まずは触ってから補強という方法でいこうかと思います。
825nobodyさん:2010/02/10(水) 10:01:04 ID:???
>>814
洒落が効いてていいじゃないか。
2スレ目からの伝統だし、愛着あるなぁ。
そもそも
ホール === セキュリティホール
なんて思い込みどうでもいいじゃん。
826nobodyさん:2010/02/10(水) 10:58:13 ID:???
>>814
ホールケーキをすぐにイメージできないの君だけ
だいたい、ケーキの数え方なんてのも違うし、ケーキは1台2台だ
827nobodyさん:2010/02/10(水) 11:09:46 ID:???
数え方って言うより
何ホール食べちゃったよ!的なニュアンスでかわいいと思う。
828nobodyさん:2010/02/10(水) 12:59:48 ID:???
>>814以外スイーツ男子
829nobodyさん:2010/02/10(水) 16:28:54 ID:UrqttIc/
>>784
公式サポートかどうかわからないけどpaginatorの中で
$options = array_merge($this->params, $this->params['url'], $this->passedArgs);
というふうに書かれているので、namedパラメータだけじゃなくてGETパラメータでも大丈夫だと思う

>>789
cakeではnamedパラメータとGETパラメータは別の扱いだよ
830nobodyさん:2010/02/11(木) 01:16:16 ID:SsYIk7V8
質問!
userModelとprofileModelがあって、
それぞれアソシエーションhasoneで連携してます。
userModelのdeleteアクションを作って実行すると、
データを削除できません。

ただ、
・User hasone Profile
・Profile belongsto User
にすると削除できます。

なぜお互いにhasoneだと削除できないんですか?
(最初はdependentの設定かな、と思ったけど、関係なかったです。)
831nobodyさん:2010/02/11(木) 07:38:42 ID:???
>>830
削除できない理由はよく分からないけど、アソシエーションの設定が間違っていることが原因かと

A hasOne B
B hasOne A
ということは、Aにはb_idが、Bにはa_idが必要(お互いに外部キーが必要)
(片方がhasManyならよくあるケース)

で、質問の例の場合は A hasOne B のケースで、その場合、必要に応じて B belongsTo A をする
この場合外部キーは B.a_id のみ
832nobodyさん:2010/02/11(木) 10:19:44 ID:???
お互いを hasOne にする時なんてあるの?
どっちかが belongsTo になると思うんだけど。
833nobodyさん:2010/02/11(木) 10:27:40 ID:???
>>832
ない
834nobodyさん:2010/02/11(木) 15:08:47 ID:RWXIN9Dn
cake1.2のbakeで質問です。

User hasMany Question
Quesion belongsTo User
上記のアソシエーションを設定し、Quesionのindexビューをbakeしました。
bakeされたindexビューではQuestionのuser_idではなく、
$Question['User']['name']が表示されます。

この動作は、CakePHPのフィールド名の規約(modifiedのような)によるものなのでしょうか?
835nobodyさん:2010/02/11(木) 15:32:30 ID:???
>>834
そう。nameかtitleが使われる
displayFieldで変更が可能
836830:2010/02/11(木) 17:46:29 ID:6DwJ8Mj3
>>831,2,3
ありがとうございました!
837nobodyさん:2010/02/12(金) 07:16:07 ID:???
おはようございます。

cakePHPを勉強中なのですが、データベースの差異を吸収できると本に書かれております。
ということは、PDOとかは基本的には使わなくても、様々なデータベースに変更しやすいと考えてよろしいでしょうか?
838nobodyさん:2010/02/12(金) 09:03:35 ID:???
>>837
やってみろ。すぐわかる。カス
839nobodyさん:2010/02/12(金) 09:03:54 ID:???
>>837
基本的にはそうです。

対応しているDBはこちら
http://book.cakephp.org/ja/view/28/Requirements
840837:2010/02/12(金) 09:41:33 ID:???
どうもありがとうございます。
あほな質問ですいませんでした。
841nobodyさん:2010/02/12(金) 13:21:07 ID:???
cakephpのlogファイルが容量増え続けるんだけど、logの記録を一切しない設定とかってないの?
842nobodyさん:2010/02/12(金) 13:31:16 ID:???
>>841
何のlog?
843nobodyさん:2010/02/12(金) 13:33:14 ID:???
>>842
error.log。
844nobodyさん:2010/02/12(金) 13:54:24 ID:???
>>843
あれ?debugが0であれば$this->log()使わないと記録されないという認識だけど違った?
845nobodyさん:2010/02/12(金) 22:23:36 ID:???
error.log ということは何かしらのエラーがあるわけだから、
エラーの内容を解決したほうがいいんじゃね
846nobodyさん:2010/02/14(日) 13:09:00 ID:???
debug0 にしてんだけど、debuglogとかerrorlogが書き込まれていく。
たしかに解決したほうがいいんだけどそこまでするようなサイトじゃないので
サーバーを占有しないように log系一切無しにしたいんだけどなぁ。
847nobodyさん:2010/02/14(日) 16:28:37 ID:???
エラーあっても警告しないようにFW自体改造するしか無いんでは…
というか、よく気持ち悪くないね。エラー出しっぱなしで
848nobodyさん:2010/02/15(月) 10:21:57 ID:???
1 <?=$result ?>
2 <?php echo $result; ?>

CakePHPでは1と2は同じ意味なのでしょうか?

参考書では1の書き方で書かれているのですが、
自分の環境では2の書き方をしなければ動いてくれないのです。

動作環境はxamppの最新版です。
849nobodyさん:2010/02/15(月) 10:24:43 ID:???
>>848
cakephpじゃなくても、一緒の意味。

ただし、php.iniの設定で shortopentag が有効になっていないと使えない。
850nobodyさん:2010/02/15(月) 10:33:14 ID:???
>>849

もやもやがすっきりしました。
ありがとうございます!!
851nobodyさん:2010/02/16(火) 12:22:04 ID:???
質問です。
トップページ(default.ctp)の中に設置しているフォームから送信された文字列を
個別ページ(view.ctp)で表示している本文の一部に代入したいんですが、
どうすればいいんでしょうか。

本文の中の代入したい部分に$wordとか入れてみても駄目だったんですが、
どこで処理すればいいんですか。

echo $post['Post']['body'];
echo $word;

みたいに並べることはできるんですが、これでは混ぜられそうにない。
852nobodyさん:2010/02/16(火) 12:33:55 ID:???
>>851
もうちょっと具体例で示してちょ。
何をやりたいか、さっぱりだわさ
853nobodyさん:2010/02/16(火) 12:58:57 ID:???
>>851
controller側でsetしてますか?

function view(){
if(isset($this->data)){
$this->set("post",$this->data)
}
}
854853:2010/02/16(火) 13:02:27 ID:???
>>851
ごめんちゃんとみてなかった。
sprintf()使うとかじゃだめなんかな
855nobodyさん:2010/02/16(火) 13:13:36 ID:???
>>851
$post['Post']['body'](本文)のなかに $word の値を埋め込みたいということ?
856nobodyさん:2010/02/16(火) 13:19:37 ID:???
>>851
debug($this->params) で、フォームからコントローラーにどういう値が送られてるのかを見る。
それで必要なものを$this->setでセットしてビューで表示。
857nobodyさん:2010/02/16(火) 15:58:17 ID:???
みんなのエスパーぶりに感動した
858nobodyさん:2010/02/16(火) 16:05:32 ID:???
いくらなんでもsetや配列のチェックぐらいはこころえてるんじゃ…?
859nobodyさん:2010/02/17(水) 10:25:19 ID:???
データベースのテーブル名を "Boards"とした時、
CakePHPのコントローラ内では "Board" として、 "s" と削除した名前を指定しないといけないのでしょうか?

class BoardsController extends AppController {

public $name = 'Boards';
public $uses = array('Board','Personal');
}

「CakePHPによるWebアプリケーション開発」という本によると、 s がついたりつかなかったりして少し混乱しております。
860nobodyさん:2010/02/17(水) 10:52:42 ID:???
>>859
http://book.cakephp.org/ja/complete/22/CakePHP-Conventions

DB table => boards
Controller => BoardsController ( Boards )
Model => Board
861nobodyさん:2010/02/17(水) 11:22:07 ID:???
>>860

ありがとうございます!
そういう規約だったのですね。熟読いたします。
862nobodyさん:2010/02/17(水) 23:48:29 ID:???
>>861
こんな便利なツールあるよ。
http://www.cpa-lab.com/tech2/inflects/

例えばDB テーブル名をchildren(子供)にした場合

DB テーブル名 =>children
Controllerのクラス名 => ChildrenController
Controller名 => Children
Controllerのファイル名 => children_controller.php
Model名 =>Child
Modelのファイル名 => child.php

不規則な複数形にもCakeは対応してる。オレより頭いい。
863nobodyさん:2010/02/18(木) 00:50:16 ID:???
>>862
ああこれは便利だね。
欲をいえば、cakephpで既に使われているクラス名(Fileとか)を弾いてくれるとうれしいな。
864nobodyさん:2010/02/18(木) 12:05:47 ID:???
>>862

素晴らしい GJ!!
865nobodyさん:2010/02/19(金) 19:02:24 ID:o9GNlhpe
スレ違いだったらすいません。

cakephpは中小規模向けって色々書かれているのを見るんですが、
大規模、中規模、小規模の定義ってなんですか?

ユーザー数ですか?機能ですか?
866nobodyさん:2010/02/19(金) 19:03:28 ID:???
ぐぐれ
867nobodyさん:2010/02/19(金) 20:42:47 ID:???
>>865
大規模:コンピュータシステムが大きい規模
中規模:コンピュータシステムが中くらいの規模
小規模:コンピュータシステムが小さい規模
868nobodyさん:2010/02/19(金) 21:16:30 ID:???
記事を書いている人の勝手な思い込み説
869nobodyさん:2010/02/19(金) 21:17:21 ID:???
>>867
大規模 アマゾン
中規模 ブックオフオンライン
小規模 街の古本屋さん
870nobodyさん:2010/02/19(金) 22:32:57 ID:???
大規模:AKB
中規模:モーニング娘。
小規模:Perfume
871nobodyさん:2010/02/19(金) 23:37:14 ID:???
大規模:こち亀の中川
中規模:タルるートの原子力
小規模:スネ夫
872nobodyさん:2010/02/20(土) 01:35:31 ID:Zor8hgfe
大規模:大便
中規模:中便
小規模:小便
873nobodyさん:2010/02/20(土) 01:36:56 ID:???
中便ってなんやねん
ゆるゆるの…
874nobodyさん:2010/02/20(土) 02:09:06 ID:???
875nobodyさん:2010/02/20(土) 02:11:13 ID:???
屁がまじって生クリーム的にフワフワな便なら出たことあるけどな
876nobodyさん:2010/02/20(土) 09:17:18 ID:???
>>875
フワフワっておいしそうだな
そんな便ならスカトロできそうだな
877nobodyさん:2010/02/20(土) 10:34:11 ID:???
>>868
賛成
CakePHP1.2は小規模、中規模、大規模のオールマイティで活用出来ると思う。
symfonyは、大規模、中規模向けで、小規模には向かないと思う。
878nobodyさん:2010/02/20(土) 13:26:22 ID:???
どのFWでもどの規模でも行けるよ基本的に
ただSymfonyはCakeやZendに比べて動作が重い
879nobodyさん:2010/02/20(土) 15:31:09 ID:???
なぜ標準であるライブラリをApp::import で読み込まないと使えないのでしょうか?
どうせなら、他の機能と一緒に標準で搭載しておけば楽なのに。

あまりに機能を標準で入れすぎると重くなるからかな?

初心者の素朴な疑問なのですが、誰か教えてくださいませ。
880nobodyさん:2010/02/21(日) 18:24:58 ID:???
コントローラで処理した後に、処理前のページに戻るにはどう記述すればいいですか?
ググルにもキーワードがわかりません。><;おねがいします
881nobodyさん:2010/02/21(日) 18:29:59 ID:???
>>880
外してるかもしれんが、元のページでURLをセッションにでも入れておけばいいんジャマイカ?
882nobodyさん:2010/02/21(日) 19:40:00 ID:???
え、redirect?
883nobodyさん:2010/02/21(日) 19:51:09 ID:???
>>882
そうだよ
884nobodyさん:2010/02/21(日) 23:18:19 ID:???
>> 887
大規模ってかデザイナーがPHPわからない人のときでない限り
必要ない?
885nobodyさん:2010/02/22(月) 00:13:30 ID:???
>>884
887 ってどれ?

デザイナーがPHP解ってたらフレームワーク要らないってこと?
デザイナーが作ったプログラムなんてメンテナンスしたくないぞ。
886nobodyさん:2010/02/22(月) 10:25:56 ID:???
> デザイナーが作ったプログラムなんてメンテナンスしたくないぞ。

デザイナーが書いたPHP入りテンプレートの話でそ?
887nobodyさん:2010/02/22(月) 10:27:17 ID:???
>>884

Symfony しっかり作るぞ(商売用ケーキ)
Cake サクッと作るぞ(おいしいケーキ)
Zend Fr 自分で作るぞ(うまいかどうかは作り手次第)
888nobodyさん:2010/02/22(月) 17:51:19 ID:???
>>885
smartyと勘違いしてたスマン
889nobodyさん:2010/02/22(月) 23:08:02 ID:???
レベル低く
890nobodyさん:2010/02/24(水) 14:32:23 ID:???
CakePHPと相性のよいエディターはなんでしょうか?

eclipse PDT, Netbeans, notpad++

などが海外の掲示板には挙げられていましたが。
コード補完機能を出来る限り使いたいのですが、netbeansもeclipseもサポートしてないし。
891nobodyさん:2010/02/24(水) 14:37:54 ID:???
http://www.tiplite.com/cakephp-support-in-netbeans/

今後のサポート状況を見る限り、 Netbeansがもっともベストなのかなあと思うのですが。

現時点でも eclipse, netbeans ともにカスタマイズすることである程度cakeと連携できるようですが、
どちらがより便利なのか詳しい人よければ教えてほしい!
892nobodyさん:2010/02/24(水) 16:07:45 ID:???
俺はPDT使ってる
893nobodyさん:2010/02/24(水) 18:45:40 ID:???
netbeans使ったけど、微妙だったな。
eclipse よりはマシだけど。

コントローラーからショートカットキーで モデル、ビューに飛べたら便利だと思うんだけど。
できないよね?netbeans。
894nobodyさん:2010/02/25(木) 05:51:56 ID:???
TextMateにcakePHP bundleだろjk
895nobodyさん:2010/02/25(木) 12:44:41 ID:???
一つのコントローラーのアクションで色々な処理する場合って、他のモデルも読み出すよね。
で、コーディングしてくとどうしてもコードが煩雑になる。

なのでそれをモデルにまとめたいんだが、まとめようとすると
「モデルから他のモデルを読み出す」 処理が必要になる。

モデルから他のモデルを読み出すのはやっぱりよくないのかな。
こういう場合はコントローラー多少煩雑になってもコントローラー内で処理を終わらせるべきか、
コントローラーが煩雑になりそうだったらモデルからモデルを読み出す処理をした方がよいのか。

どっちがいいんでしょうか。
896nobodyさん:2010/02/25(木) 12:48:01 ID:???
>>895
モデルからモデルを呼ぶのが良い
897nobodyさん:2010/02/25(木) 23:58:22 ID:???
モデルってDBのエンティティのことだろ?
なんでロジック記述すんだよ?アホか。
898nobodyさん:2010/02/26(金) 08:30:00 ID:???
>>897
CakePHPのモデルはDBのエンティティとしてだけでなく、ロジック書くところとしても使われる
899nobodyさん:2010/02/26(金) 21:56:18 ID:???
>897
日頃modelに何書いてるんだ?
900nobodyさん:2010/02/26(金) 22:44:24 ID:???
ポエム
901nobodyさん:2010/02/27(土) 01:49:21 ID:???
JavaだとビジネスロジックはActionには書かずに
Serviceクラスとか作ってそこに書くんだけど、
CakePHPだとActionクラスに書くの?
902nobodyさん:2010/02/27(土) 04:29:33 ID:???
ビジネスロジックをActionに書き始めたのはJavaだぞ
903nobodyさん:2010/02/27(土) 06:54:03 ID:???
>901
コンポーネントじゃね?
904nobodyさん:2010/02/27(土) 08:54:38 ID:???
基本的なことで申し訳ないのですが、
= と => は同じような記号とイメージしてよいでしょうか?

1 $name = "boku no name";

2  var $validate = array(
 "name" => VALID_NOT_EMPTY,)

上記の1の = と 2の => は似たような記号な気がするのです。

PHPを勉強するのいたって = は 右側の内容が左側の変数に入るとイメージしています。
=> はどうイメージすればよいのか、よければご教授いただきたいです!
905nobodyさん:2010/02/27(土) 09:14:08 ID:???
PHPの配列を勉強してください。

http://jp2.php.net/manual/ja/language.types.array.php

906nobodyさん:2010/02/27(土) 09:51:04 ID:???
>>905

ありがとうございます!
配列だから => だったんですね。 イメージがぼんやりとつかめました。

こんな初歩的な質問をしてしまいどうも失礼いたしました。
907nobodyさん:2010/02/27(土) 10:31:50 ID:???
>>906
クラスとメソッドの関係じゃないの?
908nobodyさん:2010/02/27(土) 14:25:06 ID:???
PHPのクラスを勉強してください。

http://jp2.php.net/manual/ja/language.oop5.basic.php
909nobodyさん:2010/02/27(土) 15:53:26 ID:jm7DAOhI
>>639と同じ現象で困っています
どうやら改行コードがURLとしてマッチしてしまっているので、改行以降も勝手にURL扱いになってしまうようですが、
他に同じ現象の人はいませんか?
910nobodyさん:2010/02/27(土) 18:28:39 ID:???
CakePHPはDBが無ければ動かないポンコツFWだって聞いたんですけど本当ですか?
DB使わないソーシャルアプリ作ろうかなんて時には役に立たないポンコツなんでしょうか?
911nobodyさん:2010/02/27(土) 19:04:10 ID:???
>>910
心配しなくても大丈夫
controlleに
var $uses = array(); //modelを使用しない
と1行記述するだけで、DB使わないアプリが書ける
(他にもニーズに合わせた書き方が色々あるが)
912nobodyさん:2010/03/01(月) 12:10:04 ID:???
>>909
僕も同じです。

ところで
if (isset($this->params['pass'][0]) && $this->params['pass'][0] == 'csv'){
  Configure::write('debug', 0);
  ob_start();
}

その変数が定義されていて、なおかつ○○なとき っていうのは
上記以外にスマートな書き方ってないのかなぁ。
知ってたら教えて下さいませ。
913nobodyさん:2010/03/01(月) 15:56:58 ID:???
DreamWeaverを使うならHTMLヘルパー機能は特に必要ないでしょうか?

HTMLヘルパーを使うと重くなるという噂も。
914nobodyさん:2010/03/03(水) 09:18:07 ID:???
>>913
htmlヘルパーは使わなくていいと思うけど、formヘルパーは絶対使った方がいいよ。
入力ミスしたりしたときに再度入力しなおさないといけなくなったりして
ユーザビリティが悪くなるから。
915nobodyさん:2010/03/03(水) 12:26:04 ID:???
formヘルパー使うとnameが必ず
data[Model][Field]
になるのがうっとうしいよなぁ
916nobodyさん:2010/03/03(水) 14:07:50 ID:???
はじめまして、こんにちは。

携帯向けHPを試しているんですが、
DoCoMoの携帯電話が外部CSSを読み込めないことを知りました。

そこで、HTML_CSS_MOBILEを見つけたのですが、
CakePHPに導入するにはどのソースに記述すればよいのでしょうか。

質問がCakePHP以前の問題かもしれず恐縮ですが、
よろしくお願いします。
917nobodyさん:2010/03/03(水) 14:25:24 ID:???
916です。

CakePHPのバージョンは1.2.5です。

よろしくお願いします。

失礼しました。
918nobodyさん:2010/03/03(水) 17:26:16 ID:???
>>916
Viewクラスを継承してオレオレViewを作って、renderを書き換えるとかかな。

class OreoreView extends View{
function render($action = null, $layout = null, $file = null){
$out = parent::render($action , $layout , $file);
//$out に処理
return $out;
}
}

コントローラーで、$this->view = 'Oreore';とかすれば切り替えできるし。
919918:2010/03/03(水) 17:47:15 ID:???
ああコントローラーのafterFilterで$this->outputをいじる方がいいのか。
使ったこと無かったんですんません。
920nobodyさん:2010/03/03(水) 19:08:03 ID:???
>>914

なるほど! ありがとうございました!
921nobodyさん:2010/03/04(木) 00:08:05 ID:???
>>919
ありがとうございます!
afterFileterっていうのがあったことに初めて気付きました。

ググってみたらフォーラムにありました。
http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=1224&forum=8

これにHTML_CSS_MOBILEをDoCoMoの場合だけ対応させれば、
DoCoMo向けにCSSを書く必要がなくなりそうです。

試してみます!
どうもありがとうございました。
922nobodyさん:2010/03/04(木) 09:46:47 ID:???
>>921
afterLayout()のほうが適切だと思いますよ。レンダリング結果を操作する場合
923nobodyさん:2010/03/04(木) 09:49:43 ID:???
>>922
>>921 ごめん。afterRender()だた
924nobodyさん:2010/03/04(木) 09:51:59 ID:???
>>923
なぜ「っ」を省略するの?
私の知っている人もそれやるんだけど。
流行ってる?
925nobodyさん:2010/03/04(木) 10:08:05 ID:???
>>924
マジレスすると てへっ ってイメージ
926nobodyさん:2010/03/04(木) 10:11:27 ID:???
性差で調和を取り繕うのがしっくりきている潜在的ゲイの可能性あり
927nobodyさん:2010/03/04(木) 10:15:51 ID:???
そう、スイーツ大好きなんだよ
928nobodyさん:2010/03/04(木) 10:25:47 ID:???
>>926
┐(´ー`)┌オイオイ

仲良くやろうぜ

>>923
afterRender()のほうがしっくりきますか。。。
ちょっとマニュアルみてみます。

何度もレスありがとうございます。
929nobodyさん:2010/03/04(木) 12:15:49 ID:???
>>924
古い2ch語じゃない?
相当昔からあって当たり前すぎて
今さら疑問を持つレベルじゃないとおもうけど・・・・
930nobodyさん:2010/03/04(木) 15:55:54 ID:???
UsersControllerに_getNameという、ユーザーの名前を返すメソッドを作って、
それを他のコントローラーからも利用したいんだけれども、やり方がわからん。
そういう場合はコントローラーじゃなくてコンポーネントに書くべきなのかね?

別のコントローラーのアクションを呼び出したい場合にはrequestActionを
使えばいいみたいだけど、どうもそれはviewから呼び出すように作られているので
単純にメソッド利用するのとは挙動が違うみたいだし。

>>912
それしか書き方思いつかないなあ
931nobodyさん:2010/03/04(木) 15:59:32 ID:???
>>930
Modelに書くべし
932nobodyさん:2010/03/04(木) 16:09:21 ID:???
すみませんが、誰か教えて下さい。

CentOSに乗っけたCakePHPからSQL Server 2005につなげたいんですが
database.phpの記述の仕方が分らなくて困っています。

色々調べてたところ「'driver' => 'mssql'」では繋がらないみたいで、
代わりにodbc経由なら繋がるみたいな感じでしたので
odbcを設定し、isqlで接続できるところまで確認しました。

このodbcの設定をdatabase.phpにどのように記述したらよいのでしょうか?

CokePHPのバージョンは 1.2.6 です。

よろしくお願いいたします。
933930:2010/03/04(木) 16:22:21 ID:???
>>931
なるほど!
コントローラーとかコンポーネントに書くというのが思いっきりBad Cakeな考えだった
ありがとー
934nobodyさん:2010/03/04(木) 18:10:50 ID:???
>>923
afterRenderだと$this->outputをいじるのは間に合わなかった気がする。
というわけで自分はafterFilterに一票。
935nobodyさん:2010/03/04(木) 18:26:07 ID:???
ブラウザ判定などの、コントローラーでもビューでも使うようなコードってどこに書けばいいんでしょうか?
最初はコンポーネントに書いて
http://d.hatena.ne.jp/kusakari/20080731/1217420095
http://d.hatena.ne.jp/ngtn/20080306/1204815561
この辺を参考にヘルパーからコンポーネントにアクセスしてたりしたのですが
あまりスマートなやり方ではないような気がして他の方法を模索しています

http://old.nabble.com/can-i-use-a-component-under-a-helper--td16730105r0.html
英文ですが、こちらで同じ質問が投げられていて「Vendorに書けば?」とか
「$this->set('component', $this->Component)とかにすれば?」とか書かれているようですが
英文があまり理解できずどれがベターなのかわかりません…
936934:2010/03/04(木) 19:04:12 ID:???
やっぱ>>934は間違いかもしれないので、なかったことにしてくれ。
937nobodyさん:2010/03/04(木) 19:33:55 ID:???
>>935
あー。以前あったなその状況。
キレイな解は思いつかなかった。
ヘルパーからコンポーネントにアクセスするか、dry無視して重複させるか
で、前者にしたな確か
938nobodyさん:2010/03/06(土) 00:23:15 ID:???
JavaならXxxUtilsクラスとか作ってstaticメソッドにするけどな。
そういう融通は効かないのか?
939nobodyさん:2010/03/06(土) 01:33:46 ID:???
うんクラスにしてvendorに入れておけばいいと思う。
で、App::importか、もうしょっちゅう使うならbootstrap.phpでrequireしておいてもいいし。
コアライブラリのInflectorとかの扱いが参考になるのでは。
940nobodyさん:2010/03/06(土) 04:53:46 ID:???
たしかにブラウザ判定だからそうだね

でもコントローラーやヘルパーの処理が重複しちゃう時がたまにあるのよねえ
941nobodyさん:2010/03/06(土) 19:27:32 ID:???
どなたかCake初心者の自分にお助けを。
ユーザーごとに、表示データを変更するにはBelongTo機能でしょうか?

【フィールド】
・本
・価格
・感想

【ユーザー】
・ユーザーA(4冊の本を登録)
・ユーザーB(6冊の本を登録)

上記のような形で、 全員のデータを表示したり、登録ユーザーごとのデータを表示したりとしたいのです。
942nobodyさん:2010/03/06(土) 19:35:52 ID:???
>>941
そもそも根本的にリレーションというかデータベースを理解してなさそうだな。。。
とりあえず
users
books
reviews
の3テーブルで作り直すんだ
943nobodyさん:2010/03/06(土) 21:37:41 ID:???
>>942
DBの作り方のセンスいいね。
944nobodyさん:2010/03/06(土) 22:52:03 ID:???
>>942

そうなのです。

データベースの基礎からやり直した方がよさげということですね。
了解いたしました。
945944:2010/03/06(土) 23:03:05 ID:???
リレーションでぐぐるとよさげなものが見つかりました。
http://www.awaresoft.jp/blog/4-cake-php/15-series-cakephp-3.html

ここで勉強したいと思います。

「Mysql以前」という本でデータベースの基礎を覚えた程度です。
データベース同士のリレーションをしっかりとmysqlの本で勉強はしていないので、
本屋行ってきます。

belongtoやhasoneなどは、「CakePHPによるWebアプリケーション開発」という本でかじったぐらいです。
946nobodyさん:2010/03/06(土) 23:17:57 ID:???
データベースの基礎までやらなくても、cakePHPを使う上でのセオリーみたいなのを
勉強したらいいように思うけど。
947944:2010/03/06(土) 23:23:48 ID:???
>>946

なるほど。Cakeベースでリレーションの基本を学ぶ方向で行きたいと思います。
ちなみに、>>945のリンクは普通のユーザー登録で、リレーションとは関係ありませんでした。。

cake リレーション、 および アソシエーション でググって勉強したいと思います!
948nobodyさん:2010/03/08(月) 01:19:36 ID:???
Security.levelをmediumに変更して使っているのですが、これだと
Session.timeoutが120なので200分でセッションが切れることになります。
しかし、gc_maxlifetimeのデフォルト値1440秒(24分)以上経過すると1/100の
確率でセッションが切れるようです。
timeoutの値に応じてこの値を変更する処理をCakePHP側に仕込む、という
ような話がCakePHP内で出たことはあるでしょうか。それともこれは開発者が
自分で変更すべきという指針なのでしょうか。ご存じの方教えてください。
949nobodyさん:2010/03/08(月) 09:49:22 ID:qs9QxycI
すみません。どなたか教えください。
$cake bake
でModelを作成しようとして、進んで行き、
バリデートの作成で
「Would you like to supply validation criteria for the fields in your model? 」
と聞かれた際に「y」で先に進んだ際に、

バリデートの種類を選択できずに、(普通なら対話式で1 - alphaNumeric
等が選択できると思うのですが…)
普通に「Would you like to define model associations (hasMany, hasOne, belongsTo, etc.)? (y/n) 」
というアソシエーションの選択の質問に進んでしまうのですが、
なぜだかお解りの方はいらっしゃいますでしょうか?
950nobodyさん:2010/03/08(月) 13:49:25 ID:???
AuthComponentとmodelのvalidateって、どうやって併用するんでしょう?
model.validateが成功したらAuthComponentのログインをしたんですが、
方法が全然分りません。
すみませんが、誰かヒントでもいいんで教えて下さい。
951nobodyさん:2010/03/08(月) 14:04:32 ID:???
>>950
何をやりたいか良く分からんなあ
validate後saveして、すぐログイン状態にしたいってこと?
952950:2010/03/08(月) 17:05:53 ID:???
AuthComponentだと認証に失敗した場合のメッセージしか無いんで、
ユーザーID未入力や、パスワード未入力といった個別のエラーメッセージを表示したいんですね。
model.validateを、そのまま実装すると認証エラーのメッセージとvalidateのメッセージが同時に表示されてしまうので、
validateのメッセージだけを表示したいです。
953nobodyさん:2010/03/08(月) 21:07:56 ID:???
cakephp1.2 のページネーションって SQLから取得したデータを加工した場合って
ページ数とか求めることできないかな。
例えば 100件のデータがある場合
・現在の表示件数 min max
・前のページ < 1 2 3 4 5 > 次のページ

ってやりたいんだけど。

pear の pager 使って代用しているんだけど、重い。。。
954nobodyさん:2010/03/08(月) 21:57:26 ID:???
>>953
こういうこと?
http://book.cakephp.org/ja/complete/164/Pagination/cakephp/cakephp1x
<?php
echo $paginator->counter(array(
'format' => '合計 %pages% ページ中の %page% ページ目です。
総レコード %count% のうち、 %start% 行目から %end% 行目までの %current% 行を表示しています。'
));
?>
955nobodyさん:2010/03/08(月) 22:08:01 ID:???
>>954
ありがとう。
paginatorヘルパーを上書きすることで解決しました。
956935:2010/03/08(月) 22:37:46 ID:???
>>937-940
いろいろ参考になる情報ありがとうございます。
一応vendorに置く方向で作っていますが、毎回newしなければいけないのが不便と言えば不便ですね・・・
957nobodyさん:2010/03/10(水) 00:25:48 ID:???
>>762でハマった
何で:なんかで区切るんだ、デフォは=にすりゃいいのに
958nobodyさん:2010/03/10(水) 00:50:34 ID:???
ほんまやな
959nobodyさん:2010/03/10(水) 03:27:30 ID:???
<?php echo $html->link(__('Delete', true), array('action' => 'delete', $id), null, sprintf(__('Are you sure you want to delete # %s?', true), $id)); ?>

上記はbakeで作成されたHTMLヘルパーのlinkです。

このlink(__('Delete', true), 部分の (__ やtrueは何か意味があるのでしょうか?

普通に
$html->link('Delete','array('action' => 'delete',..... がマニュアルに書いてある書き方だと思うのですが。

どういう意味を持つのか気になって今夜は眠れません。
960nobodyさん:2010/03/10(水) 03:33:05 ID:???
__の中は翻訳用文章で、あとで一括で多言語化できる
nero
961nobodyさん:2010/03/10(水) 04:07:55 ID:???
>>960

ありがとうございます。
これで安らかに眠ることができます。
962nobodyさん:2010/03/10(水) 05:07:04 ID:???
アーメン
963nobodyさん:2010/03/10(水) 13:57:10 ID:???
link(__('Delete', true) 部分の true の意味が分からず眠りから覚めてしまいました。

http://book.cakephp.org/view/162/Internationalizing-Your-Application

ローカライゼーションのマニュアルを見ても説明が書かれておりませぬ。どなたかお助けを。
964nobodyさん:2010/03/10(水) 14:02:52 ID:???
965nobodyさん:2010/03/10(水) 14:26:37 ID:???
>>964

ありがとうございます!

「第 2 引数で自動的に文字列を echo 出力するか」 という意味なのですね。
ちょっと気になると頭がモヤモヤするのですが、おかげでスッキリです。
966nobodyさん:2010/03/10(水) 18:53:31 ID:???
同時に複数のテーブルを更新することはできるでしょうか?

例えば、下記のようなイメージで動かせないかと思っているのですが、
うまくいきません。

【form側で渡す】
<?php
echo $form->create('Book');
echo $form->input('Book.name');
echo $form->input('Comment.comment');
echo $form->end('Submit');
?>

【コントロール側で複数モデルに入力】
class BooksController extends AppController {

var $uses = array('Book','Comment');

function edit() {
if (!empty($this->data)) {
$this->Book->save($this->data));
$this->Comment->save($this->data));
}
}
967nobodyさん:2010/03/10(水) 19:04:30 ID:???
>>966
アソシエーションしてるならsaveAll
してないなら、さきにvalidateだけかける
968nobodyさん:2010/03/10(水) 19:20:49 ID:???
>>967
ありがとうございます! ハマリまくっていた問題が一気に解決した。。感激。
アソシエーションしているので下記になりました。

function edit($id = null) {
if (!empty($this->data)) {
$this->Book->saveall($this->data);
$this->redirect(array('action' => 'index'));
}
if (empty($this->data)) {
$this->data = $this->Book->read(null, $id);
}
}

上書きではなく、データ追加の動きになってしまったけど、一歩前進。
969nobodyさん:2010/03/11(木) 14:57:27 ID:???
モバイルとPCを判定してviewだけ分けているのですがキャッシュするとどちらかの画面がキャッシュされて
モバイル・PC関係なく表示されます。
view単位でのキャッシュもしくはキャッシュに引数(モバイルかPCか判別させる)を指定することはできますでしょうか?
970nobodyさん:2010/03/11(木) 15:37:26 ID:???
>>969
モバイルとPCでURLは違うの?
キャッシュヘルパーはURL(正確にはビューの$this->here)を元にキャッシュファイル名を作ってるよ。
971nobodyさん:2010/03/11(木) 17:20:25 ID:???
>>970
レスありがとうございます。
URLは一緒で変数($mobile)でviewを振り分けています。
Cache::writeでviewをきゃしゅするしか方法はなさそうですね;;
972nobodyさん:2010/03/15(月) 18:25:42 ID:5XgthJTC
スミマセン。インストール方法がGoogleで検索して、調べてのですが、
イマイチよく分かりません。
どなたか、詳しくご教授いただけないでしょうか?

環境
OS:MacOSX 10.5(Leo pard)
MAMP + PDT を使用して開発環境を構築したいです。
Cakeのバージョンは1.2。
973nobodyさん:2010/03/15(月) 18:39:53 ID:???
公式のチュートリアルわかりやすいよ
974nobodyさん:2010/03/15(月) 19:41:18 ID:???
HTMLの部分はどのように書くのがお勧めでしょうか?

1 DreamWeaverなどを使用するか
2 手打ちでやる
3 HTMLヘルパーを使った手打ち

私は初級者なので1のやり方でいこうと思っていたのですが、
プロの方にDWよりマニュアルで書くのを覚えたほうが正式なフォーマットで
書けるから後々楽だと言われました。最初は難しいけど、覚えれば簡単だと。

そうは言ってもDWなどで直感的にサクサク作れるほうが圧倒的に早いのでは
ないかな?とも素人として思っちゃうのですが、どうでしょうか?

HTMLヘルパーを駆使したなら、かなり手打ちが楽になるのでDWと同じぐらい
早くなるかもとも思ったりしますが、ヘルパーは重くなったりして実際使われていない
と聞いたこともあります。
975nobodyさん:2010/03/15(月) 19:53:51 ID:???
補足:

DWをお勧めしない理由として、正式なフォーマットで書けないから。
正式なもので書けないと、異なるブラウザで表示が変わるようになってしまうと言われました。
976nobodyさん:2010/03/15(月) 20:22:51 ID:???
>>974
僕は全部DWでやってるけどね。

とりあえず表示する レベル までならcakephpのヘルパーや手打ちでいけるかもしれないけど
ある程度凝ったデザインしようと思うとDWが使いやすい。

ヘルパーを優先的に使いながら 1 の dw を使用 がベストだと思われます。
977nobodyさん:2010/03/15(月) 20:51:48 ID:???
デザイン関連の話題なので便乗で質問です。

smartyと併用、っていう方は多いんですか?
phpはcakeから始めたのですが、いまいちsmartyを使うメリットが見えないんです。
978nobodyさん:2010/03/15(月) 20:53:42 ID:???
自分は>>976さんとは逆で、PHP側のビュー構造とデザインの整合性を
取るなら、初習の段階でDW(のレイアウトビュー)に頼るのは
なるべくやめといたほうがいいよってアドバイスすることが多い。
確かにいろいろわかってるなら便利なツールにもなりうるんだけど。
979nobodyさん:2010/03/15(月) 21:01:02 ID:???
>>976
>>978

とても参考になります。ありがとうございます。
980nobodyさん:2010/03/15(月) 21:37:08 ID:???
ヘルパーはそのままだと余計なタグがいっぱい付くのがちょっとウザい
981nobodyさん:2010/03/16(火) 04:05:43 ID:???
>>977
smartyってメリット無いと思うけど。
今はデザイナでもflashやphpやらなきゃいけない状況だし、無駄にややこしいsmarty覚えるならphp覚えたほうがいい。
982nobodyさん:2010/03/16(火) 11:43:46 ID:???
見た目をスッキリさせるのがいちばんの利点だと思ってる。
実に些細な点だけど、気持ちいいんだなこれが。

<?php echo $var['example']; ?>
<?php e($var['example']); ?>
{$var.example}
983nobodyさん:2010/03/16(火) 15:04:11 ID:???
<?= $var['example'] ?>って使っている人いるのかな
smarty無しでsmarty並にすっきりするけれど、XHTML行頭のXML宣言で引っかかる
984nobodyさん:2010/03/16(火) 16:44:27 ID:???
そろそろ次スレか

>>981
下手にPHPをわかってるデザイナがテンプレート内で無茶なことをしないようにSmartyを採用するというのは聞いたことがある
できあがった点プレをプログラマーが軽くチェックすればすむ話だとは思うけど

>>983
short_open_tagは使わないのがセオリーだとおもう
985nobodyさん:2010/03/16(火) 17:23:16 ID:???
ビューでもifとかforeach回したりとかはするんでしょ?
あとcakeならヘルパー使ったりすることになったらsmarty使っても結構ぐちゃぐちゃになってしまいそうな
気がするんだけど。
smartyの見た目のすっきりさは好きだけど、
かけた手間の分ほどすげースッキリするっつうわけでもないかな。と思ってる。
986nobodyさん:2010/03/16(火) 17:25:21 ID:???
そういうこともあって一時ほどは聞かなくなった印象>Smarty
987nobodyさん:2010/03/16(火) 22:33:02 ID:???
smarty は FW 採用と同時に消えていったみたいな感じかな。
重いし,結局やることやらなきゃいけないし,(x)htmlじゃないし。
blitz みたいなエクステンションが標準になればいいのに。
988nobodyさん:2010/03/17(水) 18:57:13 ID:???
>>935とほぼ同じ状況で、処理をどこに書けばいいのか迷ってるんだけど、
model view controllerのどこででも使う処理をvendorじゃなくてbootstrapに書くのは駄目かな?

cookbookにはbootstrapは「便利関数の定義」などに使うべきだと書いてあるんだけど、
この「便利関数」っていうのは、こういうどこでも使う処理のことだよね?
http://book.cakephp.org/ja/view/954/Bootstrapping-CakePHP
bootstrapにあんまりいっぱい書くとわけわかんなくなりそうだけど、ブラウザ判定程度のものなら大丈夫かな、と
989nobodyさん:2010/03/17(水) 20:29:56 ID:???
煽りじゃなくどういう脳みそしてんだと思ったw
990nobodyさん:2010/03/17(水) 20:41:12 ID:???
>>988
/cake/basics.php
にどこでも使う関数は書くといいよ。
991nobodyさん:2010/03/17(水) 20:47:51 ID:???
vendorに置いてbootstrapでApp::import('Vendor', )すればいいんじゃね?
992991:2010/03/17(水) 20:54:08 ID:???
App::import('Vendor', 'Hoge');
なら使うときは
Hoge::method();
とかね
993nobodyさん:2010/03/18(木) 08:05:51 ID:???
1.3になってlibsってフォルダが増えたけど、
ここには何をいれるの?
vendorsとの違いは何??
994nobodyさん:2010/03/18(木) 09:17:55 ID:???
次スレ立ててくる
995nobodyさん:2010/03/18(木) 10:04:35 ID:???
【PHP】フレームワーク CakePHP 8ホール目【1.3】
http://pc11.2ch.net/test/read.cgi/php/1268874059/
どぞ
996nobodyさん:2010/03/18(木) 12:25:34 ID:???
春になりました。
梅!
997nobodyさん:2010/03/18(木) 12:32:33 ID:???
1000なら自作アプリ公開!
998nobodyさん:2010/03/18(木) 15:51:47 ID:???
(;゚Ж゚;)ブホォ
999nobodyさん:2010/03/18(木) 16:37:32 ID:???
                   / ̄\
                  |     |
                   \_/
                 __|___
                 /        \
                  /         \
                    l            |
              (             |
                   \       〃_/
                 >'⌒ ̄ ̄、,\
                /         \
               /  ィ     ,ノ'ヾ ヽ
                (   /  ),      l
                  ) ノ _,/    、,,  |
                /⌒ ̄ ̄ ̄          |
            l  、_          ,ノ ,/
          | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
.            └┬:‐┬───┬‐────┘
            ノ ,‐‐,)      丿,‐‐,)          ┼ヽ  -|r‐、. レ |
           (,∠/       (,∠/           d⌒) ./| _ノ  __ノ
1000nobodyさん:2010/03/18(木) 17:18:40 ID:???
1000ならクリームが古くて全員腹痛
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。