トップページ⇒php
1001コメント309KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2009/09/01(火) 16:12:06ID:XVdxsVut
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/
0002nobodyさん2009/09/01(火) 16:12:35ID:???
■過去スレ
【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/
0003nobodyさん2009/09/01(火) 16:13:00ID:???
■その他いろいろ
連載: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/
0004nobodyさん2009/09/01(火) 16:13:21ID:???
■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/
0005nobodyさん2009/09/01(火) 16:13:48ID:???
テンプレらしきものは以上
補足があればどうぞ

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

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

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

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

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

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

select 使う場合は、'showEmpty' => 'select me'
0014132009/09/03(木) 13:59:43ID:???
ごめん。select使うときは>>13じゃなくて、第5引数に設定だた
0015nobodyさん2009/09/03(木) 14:45:27ID:???
>>11
ファイルベースでやるなら
rmコマンド使ってまとめて消せるからいいんだけど
memcacheとか使うと出来ないじゃん。
0016122009/09/03(木) 18:07:45ID:???
>>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を使用するほうがいいのかな、とは
思っているのですが(見た目で何が表示されるのかわかりづらい気がしました)
ありがとうございました。

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

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

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

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

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

>>19
複数クッキーに対応してないだけでしょ。
書き直したら使えたよ。
0021nobodyさん2009/09/04(金) 14:55:30ID:???
core書き直しはヤダ
継承したクラス・・・めんどい
0022nobodyさん2009/09/04(金) 15:32:52ID:???
CURLでええやん
0023nobodyさん2009/09/04(金) 19:30:20ID:???
あのさ、今めっちゃ困ってたんだけど、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ってなんなのさ
誰か教えてよ!
0024nobodyさん2009/09/04(金) 19:43:31ID:???
最近、CakePHPに興味を持って触りだした初心者なんだが先人達にauthコンポーネントの使い方について質問したい。
みなさんは、認証が必要なページと不要なページが混在している場合ってどうしてますか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ウェブルート直下にindex.php置けや。
0054nobodyさん2009/09/10(木) 16:45:19ID:???
ありがとうございます
できました><
0055nobodyさん2009/09/10(木) 17:16:22ID:???
>>52
一応言っておくけどそれ、apacheの質問だからね。
スレ違い
0056nobodyさん2009/09/10(木) 17:19:33ID:???
>>55
ちげーし
0057nobodyさん2009/09/10(木) 17:54:11ID:???
>>56
アパッチのことなんもわからんとリライト使ってるcakeなんか使うから
わからんくなるんだろ。
0058nobodyさん2009/09/10(木) 18:24:29ID:???
なんで喧嘩腰やねん
0059nobodyさん2009/09/10(木) 19:01:52ID:???
>>58
お前が慣れへん関西弁なんか使うからやないか
0060nobodyさん2009/09/10(木) 20:09:26ID:???
お前が慣れへん関西弁なんか使うからやないか〜い
0061nobodyさん2009/09/10(木) 20:19:38ID:???
おまえら関西バカにすんなや
怒るでしかしw
0062nobodyさん2009/09/10(木) 20:30:45ID:???
ワイが浪速のケーキ職人やでホンマ
0063582009/09/10(木) 20:34:14ID:???
大阪生まれ大阪生まれやヴォケ
0064nobodyさん2009/09/10(木) 20:34:54ID:???
後半育ちって書こうとしてまちごーたやないかボケ
0065nobodyさん2009/09/10(木) 21:29:59ID: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'}();
しかないの?
0066nobodyさん2009/09/10(木) 22:51:58ID:???
>>65
DATE_ADD( Table.created, INTERVAL 1 HOUR) as hoge
ではどうでしょ?
0067nobodyさん2009/09/10(木) 22:57:56ID:???
>>65
パフォーマンス上問題が無いのであれば、
PHP側で実装する。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


いやほら、なんか予期せぬエラーが出て処理が止まったりしたりしても気づけないじゃん。
0081nobodyさん2009/09/11(金) 20:02:35ID:???
error_reporting(E_ALL)
0082nobodyさん2009/09/11(金) 20:16:33ID:???
>>78
さぁ、このページで「log」で検索する作業に入るんだ。
マニュアルに結構載ってるから一通り読んで、まず検索してみろ。
ググっても結構あったぞ。
0083nobodyさん2009/09/11(金) 20:44:00ID:???
>>82
このページでlogなんかなかったし><
0084nobodyさん2009/09/11(金) 21:02:25ID:???
>>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/
これね!
0085652009/09/12(土) 00:56:23ID:???
>>66
いやあ、勝手にパースされて`が変なところに付くということなんで
SQLを変えても意味がないというか。
$this->Table->selectAdd('tables.created + INTERVAL '.$this->Table->escape('$hour').' HOUR AS hoge');
みたいなのがあればいいんだがなあ、と。

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

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

preg_match('/(?:\w+\.)?(\w+)/', $options['sort'], $result)
とか書いてあるけど全然意味がわかりません。
0087122009/09/12(土) 11:58:30ID:???
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にしたら動かなくなりました・・・。
モデルの基本的なところが理解できていないかもしれませんが、
こういう場合はどのようにするべきなのでしょうか。
わかりにくい質問ですいません。
0088nobodyさん2009/09/12(土) 12:05:02ID:???
>>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'を取り出してるだけじゃなかろうか。
0089822009/09/12(土) 12:24:36ID:???
>>82は
http://book.cakephp.org/ja/view/2/x1-2-Collection
というurlを入れるつもりだったのは秘密だ ><
ごめんな!>>78
0090nobodyさん2009/09/12(土) 17:49:07ID:???
; * PHP versions 4 and 5
; *
; * CakePHP(tm) : Rapid Development Framework <http://www.cakephp.org/>;
・
・
・
よくコードに上記のようなコメント書いてるけど絶対書かないといけないんですか?
書き方載ってるサイト教えてください
0091nobodyさん2009/09/12(土) 18:13:52ID:???
>>90
phpDocumentor でググるといいかな。
絶対必要というわけではないけど、
自分で作ったファンクションとかAPIのドキュメントを自動生成するために書式が決まってる。
後から自分のコードを読みやすくするには書いとくクセを付けといた方がいいのかも。
0092nobodyさん2009/09/12(土) 20:34:34ID:???
>>91
ありがとうございます早速調べてきます
0093nobodyさん2009/09/13(日) 01:37:39ID:???
最近いいスレだなって思う
うん、それだけ。
0094nobodyさん2009/09/14(月) 21:33:44ID:SnxRq9UL
uuidほど広範囲でなくて、
そのテーブル内でユニークなランダム文字列ないし数字を振ってくれる便利なものないですか?
UUIDは長過ぎて8文字程度のランダムな文字列を割り当てたいんだけど
0095nobodyさん2009/09/14(月) 22:22:12ID:???
>>94
MySQLのauto incrementじゃ駄目なん?
あとこの質問はスレ違いじゃない?
0096nobodyさん2009/09/14(月) 23:05:17ID:SnxRq9UL
ランダムがいいんだよ

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

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

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

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


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

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

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

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


で、それを解消するのにどうしようかなぁと思ったんだけど
キャッシュを操作する直前にCache::configuいじって
プリフィックスにディレクトリ情報つけるだkでよかった。
0110nobodyさん2009/09/16(水) 13:42:09ID:???
そりゃよかった
0111nobodyさん2009/09/17(木) 04:47:23ID:???
>>109
キャッシュ用のディレクトリ内でファイルが増えるのをなんで嫌うの?
煽りじゃなくてまじで聞きたい。
0112nobodyさん2009/09/17(木) 06:34:31ID:???
ブラウザを別に複数立ち上げて、CakePHPで作ったサイトにそれぞれログインすると、
ブラウザ間でSession情報を共有しちゃうんだけど、そういうものですか?
0113nobodyさん2009/09/17(木) 10:37:05ID:???
>>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個程度にとどめておくことをお勧めする




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

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

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

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

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

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

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

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

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

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

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

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

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

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

プログラマとして最低限必要でしょ
0154nobodyさん2009/09/23(水) 21:39:40ID:???
イラついてる暇があったら調べろ

ほらよ
http://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rls=org.mozilla%3Aja%3Aofficial&hs=ht6&num=100&q=authComponent+cakephp&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
0155140っす2009/09/23(水) 21:49:09ID:ux1l4fZg
感謝っす!
考え甘かったすわ。
肝に命じて進めていきますわ。
0156nobodyさん2009/09/23(水) 21:59:46ID:???
bakeはbakaしか使わないって言うしな
0157nobodyさん2009/09/23(水) 23:32:04ID:???
bakeとハサミは使いよう。
0158nobodyさん2009/09/24(木) 01:31:26ID:???
bakeに刃物
0159nobodyさん2009/09/24(木) 03:11:55ID:L477CAe5
helperの中から他のhelperを呼び出すにはどうしたらいいですか?
0160nobodyさん2009/09/24(木) 08:04:26ID:???
>>159
$helpersにHelperを指定して $this->Html->link のように使う
0161nobodyさん2009/09/24(木) 15:25:58ID:???
>>122
Cake3では拡張子はphpになるみたい
0162nobodyさん2009/09/24(木) 22:48:37ID:???
>>160
ありがとうございました
0163nobodyさん2009/09/24(木) 23:58:41ID:???
bakaもbakeも使いよう。
0164nobodyさん2009/09/25(金) 00:18:25ID:???
遅いうえにつまらん
もうくんな
0165nobodyさん2009/09/25(金) 00:27:33ID:???
ヘルパーが関数ではなくオブジェクトなのは
Cakeの特徴の一つですが
複数のクラスの中で同じヘルパーを使う時、
ヘルパーのインスタンスは同じなのでしょうか?
それとも、インスタンスが毎回作られるのでしょうか?
0166nobodyさん2009/09/25(金) 12:12:36ID:???
Cake3は、Cake1.0→Cake1.2の時の変更より激しい変更があるのでしょうか?
0167nobodyさん2009/09/25(金) 12:34:20ID:???
そらあるだろ
その前にCake2も今つくってんだし
0168nobodyさん2009/09/25(金) 17:06:34ID:???
>>165
ってどういうこと?Viewは一個だからHelper読み込みは1個ですよね通常。
Modelとかで強引に読み込んだらnewするわけだからインスタンス作るわけですよね

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

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

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

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

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

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


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

記憶の片隅にあったので↓の人参考にしてみたら?
http://d.hatena.ne.jp/ngtn/20080323/1206281439
0189nobodyさん2009/09/29(火) 09:19:11ID:???
>>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;
}
}
?>
0190nobodyさん2009/09/30(水) 16:22:46ID:???
アソシエーションされたモデルにくっつけたbehaviorのcallbackを通らない問題は解決する気ないんだろうか。
いつもこれに悩まされる。

https://trac.cakephp.org/ticket/2056
0191nobodyさん2009/09/30(水) 22:27:51ID:???
Paginatorで1ページあたりの表示数をコントローラの$this->paginateで指定してたのですが、
$this->paginateでの指定よりもurlで/limit:5000と指定したほうが優先されてしまうのは仕様なんでしょうか?
結局$this->paginateでの指定を諦めて$this->passedArgs['limit']で指定しているのですがみなさんはどうしてますか?
0192nobodyさん2009/09/30(水) 22:34:25ID:???
チュートリアルで作成したブログにタグ機能を実装するチュートリアル - 「最果て」の支部
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テーブルにデータが入るのかわからず、問題のある場所が突き止められない状況です。
01931922009/09/30(水) 22:37:38ID:???
>>191
自分の場合は$this->paginateの第三引数でホワイトリストを指定しています。
URLのパラメータでlimitがいくらでも変えられてしまうと言うのは気持ちが悪いので。
0194nobodyさん2009/09/30(水) 22:49:47ID:???
>>193
そんな指定が出来たんですね・・・わからなかった俺涙目orz
レスありがとうございます
0195nobodyさん2009/10/01(木) 05:27:32ID:???
>>189
阿呆か
毎月給料遅配ばかりならその言い草も成り立つかもしらんが
きちんと給料を頂戴しているんだろ?残業代が出ないだけだろ?

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

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

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

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

逆に基本全て実行できて、ログインしないと実行できないものを指定するってできるの?
0204nobodyさん2009/10/01(木) 22:33:03ID:???
調べろ糞が

http://book.cakephp.org/ja/view/383/deny
0205nobodyさん2009/10/02(金) 00:21:35ID:???
>>201
あーそれですね
paginateで用意されてると思ってその辺ばかり見てました。
あざっす!!
0206nobodyさん2009/10/02(金) 20:15:27ID:???
>>204
ありがとうございます。*で指定して deny 使えば良いんですね。
authコンポーネントって コントローラーをまたぐと認証が切れますけど、これは仕様なんですか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

できるんですが

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

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

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

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

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

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

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

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


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

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

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

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

ごめん、
array(
'controller'=>':controller',
'action'=>':action',
'day'
)
で普通渡すような。。。
0278nobodyさん2009/10/21(水) 12:37:32ID:???
idもOKでは?
0279nobodyさん2009/10/21(水) 16:53:30ID:+lxCFMv1
>>275
せめて何ページ目か書いてくれないと、手元にある本でもどこの話なのかわからん
あとその本、入門としてはレベル高いから他の本の方がいいかもよ
02802752009/10/21(水) 19:52:23ID: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
こっちで聞いてみまーす。
最初からこっちで聞けばよかったね。
皆さん面倒かけてすいません。&レスありがとう。
0281nobodyさん2009/10/21(水) 19:56:31ID:???
おまえは何を言っているんだ?
0282nobodyさん2009/10/21(水) 20:23:59ID:???
>>280
見てみた、確かに書いてあるね>>275の状態になるのはp57みたいだけど
schedules controllerには
functino index ($scope = 'week')
って書いてあるし、>>277のやり方の法が一般的だろうし、なんでidとして渡してるのかわからん
その後idとして利用している様子もないし

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

$this->data['model']['password'] と $this->data['model']['username'] に値がセットされていないと暗号化されないみたいね
0295nobodyさん2009/10/24(土) 22:09:52ID:???
そそ
自前でAuth->hashPasswordだったけか?を通す必要がある
0296nobodyさん2009/10/24(土) 22:36:24ID:???
>>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?, ?/?);
      }
    }
  }
0297nobodyさん2009/10/24(土) 22:41:13ID:???
すまん
Auth->password($password)だた

http://api.cakephp.org/class/auth-component#method-AuthComponentpassword
0298295,2972009/10/24(土) 22:44:12ID:???
つか>>296は
dataにいれてhashPassword通してみたのね
でも、だったらreturnで戻ってくるからそれ受け取らなきゃ
参照で受け取って書き換えてくれるとかじゃあないよ

http://api.cakephp.org/view_source/auth-component/#line-847
0299nobodyさん2009/10/24(土) 22:45:11ID:???
>>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', '/');
}
}
}
0300nobodyさん2009/10/24(土) 22:46:17ID:???
>>298
ありがとう
0301nobodyさん2009/10/25(日) 00:02:21ID:???
ベーシック認証をかけたくてSecurityコンポーネントを使ってるんですが

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

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

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

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

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

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

困ってます助けて・・・

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

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

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

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

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

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

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

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

$xml = new XML($req);

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

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


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

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

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

そういう場合はどうなるのでしょうか?
一応、問題は解決しましたので、もし既に調査済みの方がいれば、
教えていただけるとありがたいです
0320nobodyさん2009/10/27(火) 07:38:21ID:???
>>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よりは短時間のリミットで再取得
取得できなくてもキャッシュを表示

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

とエスパー

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

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

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

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

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

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

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

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

http://bakery.cakephp.org/articles/view/inheritable-behavior-missing-link-of-cake-model

とか
0333nobodyさん2009/10/29(木) 15:20:30ID:???
みなさんありがとうございます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

一つのアクション内で

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

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

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

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

[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)≠モデル名になり、規約から外れてしまう?気がして、悩んでます。
0405nobodyさん2009/11/17(火) 23:33:14ID:???
そんな基本的なこと人に聞くの?
マニュアル読まないの?目ないの?

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

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

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

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

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


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

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

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

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

公式マニュアルをプリントアウトして学習できれば一番いいんだろうけれど、そういうわけにもいかないからね
0447nobodyさん2009/11/20(金) 15:35:54ID:???
最近マニュアルの目次や前後ページへ移動リンクをクリックしても
ちゃんと飛んでくれないページが多いね。
英語ページだと問題ないのに・・・なんとかならないのかな?
0448nobodyさん2009/11/20(金) 16:36:05ID:???
なんでCakePHPで作られたサイトの文字ってデブなんですか?
0449nobodyさん2009/11/20(金) 16:38:57ID:???
Cakeはデブだろjk
0450nobodyさん2009/11/20(金) 16:42:51ID:???
PizzaPHP
0451nobodyさん2009/11/20(金) 17:40:41ID:???
>>444
そうか?いい参考書がメインだと思うけどな。
あと多少なれてきたらcakephpの辞書があれば余裕。
やっぱりいいよcakephp。
0452nobodyさん2009/11/20(金) 17:46:32ID:???
cakephpよりもzendの方が本はいいのが揃っている
ただし、リファレンス本がないのがきつい
0453nobodyさん2009/11/20(金) 22:23:46ID: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 入れてるんだけどこれが原因とか?
0454nobodyさん2009/11/20(金) 23:56:39ID:???
>>453
UsersTagsControllerの存在とかUsersTagモデルを読み込む意味とかが分からない
あえてそうする意味は何?
0455nobodyさん2009/11/21(土) 00:49:42ID:hiPUggY3
ユーザーの追加時にAuthコンポーネント使ってるんだけど、
UserModelとかでパスワードの未入力チェックとかのバリデーションかけると、
Viewでパスワードハッシュが掛かった値が入ってきちゃうんだけどこれはなんですか?w
ハッシュかける前の状態保持して戻すのが普通だと思うんですが、これは仕様?それとも使い方間違ってる?
0456nobodyさん2009/11/21(土) 00:52:23ID:???
なにがwだ
さんざん既出じゃぐぐれぼけ
0457nobodyさん2009/11/21(土) 00:54:51ID:???
>>455
Authを使った誰もが引っかかる道だなw
マニュアルにさらっと対処法が書いてあったはずと思うけど。まあググれば出てくる。
04584532009/11/21(土) 01:00:39ID: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>してくれる。
04594552009/11/21(土) 02:25:42ID:hiPUggY3
>466
あら。冷たいのね。。
>467
情報どうもー。まぁ、調べたあとのコメントだったんだけども。

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

× var $belongTo =
◎ var $belongsTo =

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

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

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

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

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

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

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

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

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

って感じですかね?
0491nobodyさん2009/11/23(月) 23:58:00ID:???
490です、連投すみません
「テーブルをたくさん作るのかな?」とか考えたんですけど、違いますよね?
0492nobodyさん2009/11/24(火) 00:03:05ID:???
スレ違い
あるのか知らんけど、データベース設計スレっぽいもの探して聞いてきなさい
普通はカテゴリTBL、板TBL、スレTBL、レスTBLがあると思うよ
0493nobodyさん2009/11/24(火) 00:27:26ID:???
実はDB使ってない
0494nobodyさん2009/11/24(火) 00:29:12ID:???
聞いて良いですか?
なんでこのスレ、DB初心者質問みたいのが定期的にでるんすかね
0495nobodyさん2009/11/24(火) 00:32:34ID:???
他に話題がないからw
0496nobodyさん2009/11/24(火) 01:50:47ID:???
Cakeの未来を語ろうじゃないか。
どうなるんだ 
俺はDonateしたけど。
0497nobodyさん2009/11/24(火) 23:14:47ID:???
>494
DB設計などの地味?な分野はサッパリわからん!
という人の比率が高いんじゃね、Web屋には。
0498nobodyさん2009/11/25(水) 02:33:33ID:???
関連モデルのビヘイビアのafterFindって呼んでくれないんですか?
なんか解決法あるんでしょうか?
04994982009/11/25(水) 02:41:14ID:???
ググってみたら
>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.
だそうで・・・なんでじゃー
0500nobodyさん2009/11/25(水) 02:51:15ID:???
まぁさんざん既出なんだけど、悔しいよねそこ
05014982009/11/25(水) 02:59:58ID:???
>さんざん既出
そうみたいですね。すいません。
とりあえずモデルに書いてやり過ごします。
0502nobodyさん2009/11/25(水) 23:32:21ID:???
今作ってるサイトで、「あ〜ん」まで46文字分の目次リンクを作ろうとしてます。
目次は「http://domain.com/tables/index/1」のようなURLで、
「動物」「植物」などのジャンル別に同じようなリンク群を用意します。
各リンク群の差異は、テーブル名だけになります。

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

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

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

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

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

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

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

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

ばいばい
0525nobodyさん2009/11/30(月) 20:46:11ID:???
むしろそんな事ができることに驚いた
05265232009/11/30(月) 22:01:31ID:???
解決しました。ありがとうございました。
0527nobodyさん2009/12/01(火) 00:40:49ID:???
>>523
千里の道も一歩から、がんばってね/(^_^)/
0528nobodyさん2009/12/01(火) 05:46:31ID: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 使って実装するのは暗号化も行ってるし何よりフレームワーク使ってる観点から保守性が低いのでそれ以外で誰かお願いします
0529nobodyさん2009/12/01(火) 09:41:32ID:???
>>528
http://api.cakephp.org/view_source/cookie-component/#line-236
Optional [Name.], reguired key
$this->Cookie->read(Name.key);
0530nobodyさん2009/12/01(火) 17:52:30ID:???
>>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 で取得出来ないのかわけ判らんのですが長文でごめんなさい
0531nobodyさん2009/12/01(火) 20:20:07ID:???
>>519
datasourceのもう少し詳しい情報教えてもらえますか?
0532nobodyさん2009/12/01(火) 20:27:49ID:???
srbr
ksg
0533nobodyさん2009/12/01(火) 20:29:33ID:???
しらべろ
くそが?
0534nobodyさん2009/12/01(火) 21:09:47ID:???
春日じゃね?
0535nobodyさん2009/12/01(火) 22:56:59ID:???
それならhrhになるだろ
0536nobodyさん2009/12/02(水) 00:42:54ID:???
どういう暗号化だよ
0537nobodyさん2009/12/02(水) 01:02:04ID:???
効率いい
0538nobodyさん2009/12/02(水) 08:41:37ID:???
>>535
ややうけ
0539nobodyさん2009/12/02(水) 13:04:05ID:???
サラブレッド
高速型
0540nobodyさん2009/12/02(水) 19:35:34ID:???
>>531
datasourse系は情報が少ないよね。
0541nobodyさん2009/12/02(水) 19:45:19ID:???
>>531
ソース読めばいいんじゃね?

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

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

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

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

だれかおしえてぽ

というかそのようなことが可能かどうか
というかオープンソースだから不可能はないだろうけど・・・
とはいっても、cakeのcoreに本格的にメスを入れるほど技量はないかも。
0544nobodyさん2009/12/04(金) 07:38:54ID:???
>>543
Routingでは対応できないから一旦振り分け用のaction呼んでそこからrequestActionすればできるけど
でもそもそもそんなことするシーンが分からん
具体的な例をおくれ
0545nobodyさん2009/12/04(金) 09:52:00ID:???
>>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ほんとはやりたいのはこれ。
05465442009/12/04(金) 13:04:04ID:???
>>545
CategoriesControllerを置いて、apacheで書き換えるのが良いと思うがどうか
0547nobodyさん2009/12/05(土) 02:07:06ID:???
カテゴリーの数にもよるかも
でも俺も546に同じ
05485452009/12/05(土) 15:35:56ID:???
CetegoriesControllerってのは、545で言うDefaultControllerの役目だよね。
でもapacheでどう書き換えるのかイメージが沸かない
ああぁ
0549nobodyさん2009/12/05(土) 16:23:04ID:???
cakephpでcron使いたいんだけど
「外部からのアクセス禁止でcronからのみ叩けるアクション」
を作るにはどうしたらいいですかね。
0550nobodyさん2009/12/05(土) 16:38:05ID:???
ローカルからだけ叩けるようにしとけば?
0551nobodyさん2009/12/05(土) 17:01:27ID:???
>>550
ありがとう。
function _test(){

}

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

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

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

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

それならわかる!!

なるほどっっ

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

admin用フィルター
admin_beforeFilter

普通用フィルター
beforeFilter

みたいに実行してくれないのですか?
自分で呼ばれたurlを解析して
beforeFilterの中で分岐させないと無理?
0566nobodyさん2009/12/06(日) 18:15:52ID:???
>>565
admin_beforeFilter の発想は無かったわ
でもurlを解析する必要はない
debug( $this->params ) せよ
0567nobodyさん2009/12/06(日) 19:20:01ID:???
>>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が新しくなったときに、大変だよなぁ。。。
0568nobodyさん2009/12/06(日) 19:47:35ID:???
ktailibrary で authコンポーネントを使ってログインNGのとき、PCからだとsessionに
[Message] => Array
(
[auth] => Array
(
[message] => ログインできません
[layout] => default
[params] => Array
(
)

)

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

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

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

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

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

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

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

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

mod_rewrite使えばできるでしょ。

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

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

糞な掲示板なんか作る前にマニュアル読むかシネ
06066022009/12/09(水) 20:35:39ID:???
>>605
できました。ありがとうございます。
CakePHPってMS SQL Serverとあんまり愛称よくないですね・・・
改善してほしいな
0607nobodyさん2009/12/09(水) 20:43:40ID:???
どこがどう相性悪いのか具体的に
06086022009/12/09(水) 20:51:30ID:???
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;しちゃいましたけど・・・
0609nobodyさん2009/12/09(水) 20:57:19ID:???
↑最高にアホ
0610nobodyさん2009/12/09(水) 21:09:35ID:???
>>592
メディアをドキュメントルートから外すのは普通にやると思うよ。
そのため(ってわけでもないけど)にcakephpにメディアビューも内蔵されてるんだし。
0611nobodyさん2009/12/10(木) 00:07:13ID:???
>>610
メディアビューで、サムネイル画像50枚くらい一度に表示したら、
ちょっともっさりしてたよ。

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

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

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

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

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

shell起動は、上にも書いてある用に``とかexec系だけど、
バックグラウンドで処理して欲しいと気が多いから(つまりshellの返答を待って欲しくない)
その時は/dev/nullと&使って呼び出してる
0620nobodyさん2009/12/12(土) 04:39:04ID:???
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)
と追加すれば、
正常に動作することがやっとわかったんですが、

これは一体なぜ???

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

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

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

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

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

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

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

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

なんかもっと画期的な、とか、定石な手段をご存知だったら教えてくださいー。
みんなはどうしてるんだろう。
0641nobodyさん2009/12/31(木) 15:59:32ID:???
>>640
fileはvalueを指定できないからね。ページ遷移してる限りfileを入れた状態で
表示するのは難しいのではないでしょうか。
できるかわからんが、アップロードだけは完了させてしまいfileは表示しないとか?
0642nobodyさん2009/12/31(木) 16:39:52ID:???
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があるのなら、どこからダウンロードすれば良いのでしょうか?
0643nobodyさん2009/12/31(木) 18:05:08ID:???
>>640
validationエラー時にアップロード済の場合、
ファイル名とかサムネイル + 削除リンク表示。
削除リンクをクリックするとfileが表示されるとか。

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

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

cake/VERSION.txt には 1.2.5って書いてあるから、それで確認すればOK
0645nobodyさん2009/12/31(木) 19:31:56ID:???
>>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.と表示される様になりました。
06466402010/01/04(月) 00:11:40ID:???
>>643
>>641

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

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

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

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

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

この部分を<?php echo $result ?>に変えてみると値が描画されるからresultに値は入っているみたい。
0648nobodyさん2010/01/04(月) 17:25:49ID:???
>>647
php.ini short_open_tag = On
http://shoyu-ramen23.jugem.jp/?eid=125
0649nobodyさん2010/01/04(月) 18:11:00ID:uJF3g7Nl
>>648
ズバリです。
本当に助かりました。ありがとうございます♪
0650nobodyさん2010/01/04(月) 18:23:26ID:???
>>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(); ?>
0651nobodyさん2010/01/04(月) 18:33:54ID:???
省略記号使うとどこからともなく変なのが沸いて来たりするから・・・
0652nobodyさん2010/01/04(月) 19:11:28ID:???
<?= の省略記号を使うとshort_open_tag = On してない環境で動かない事の他に
どんな悪いところがあるの?
0653nobodyさん2010/01/04(月) 19:34:32ID:???
>>650
俺も好き。あんまり推奨じゃないみたいだけど、
まぁ何かあったら <?= を <?php echo に置換すりゃいいだけだし。

>>652
推奨しませんよ ってことぐらい。
0654nobodyさん2010/01/04(月) 20:09:48ID:???
>>652
稼働安定性が悪い場合がある。とか意味不明なエラーにハマルとかある???
0655nobodyさん2010/01/04(月) 21:18:57ID:???
ブログチュートリアルで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());
}
0656nobodyさん2010/01/04(月) 21:39:41ID:???
>>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を代入するようにしているんだと思う。
0657nobodyさん2010/01/04(月) 22:18:18ID:???
>>656 Thanks.
やはりfunction edit($id = null) { はeditメソッドが呼び出されたら$id = nullで初期化し
それから、あれば引数の値を取り込むんだね。納得しました。

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

というより改名すべき

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

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

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

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

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

とか

function setApple()
とか

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

getemailとか
setapple

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


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

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

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

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

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

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

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

>>752は おいらなんだが・・・
えっと、coreを共通にするって話と、アップデートを個別に行なうって話は別だと思うよ
基本的には最新バージョンにリンク先を向けておいて、必要に応じて旧バージョンに向けることにしてる
07597532010/02/03(水) 17:57:26ID:???
>>756で名乗り間違えました、サーセン
0760nobodyさん2010/02/03(水) 21:28:54ID:???
>>758
Windowsサーバで運用してたので考え付かなかった。
確かにLinuxサーバとかだとそっちのほうがスマートだ。
0761nobodyさん2010/02/04(木) 10:09:41ID:???
Windowsにもジャンクションってあるよ
0762nobodyさん2010/02/04(木) 21:37:40ID:???
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
ぐぐってみると、あんまりコロンでセパレートしてるサイトは無いみたいなんだけど
0763nobodyさん2010/02/05(金) 10:00:55ID:???
>>762
ktalibrary使えば解決するよ
0764nobodyさん2010/02/05(金) 20:36:29ID:???
>>763
一応言っておくか「宣伝乙」

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

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

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

が
$html->inputになってる
古い版みたいだけど
0773nobodyさん2010/02/07(日) 14:24:49ID:???
1.1対応だからしゃーない
1.2対対応のガイドブック、ポケットリファレンス、実践ウェブアプリケーションあたりが良い
0774nobodyさん2010/02/07(日) 15:29:38ID:???
>>772
こことか、いんじゃね。
http://kuri6005.sakura.ne.jp/cake/wiki/index.php?ToDo%A5%A2%A5%D7%A5%EA%281%A1%C15%29%A4%F2%A5%C8%A5%EC%A1%BC%A5%B9%A4%B7%A4%C6%A4%DF%A4%BF
0775nobodyさん2010/02/07(日) 15:40:43ID:???
>>771
ほんまや!CakePHPガイドブックは07/10/25発売や。
これが世界初のCake単独本や。スマソ
http://www.amazon.co.jp/dp/4839924317
0776nobodyさん2010/02/07(日) 15:51:39ID:???
あきやんの本はアレだけどgihyoで連載してCakePHPを世の中に知らしめた功績がある
0777nobodyさん2010/02/07(日) 16:16:01ID:???
>>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
0778nobodyさん2010/02/07(日) 16:28:41ID:???
akiyanがどうこうとは言っていないよ。
あの本は、構成とか編集がおかしいから論外だと言っているだけ。
0779nobodyさん2010/02/07(日) 20:11:26ID:???
1.2.6のzipはダウンロードできますか?
tgzは落とせるので問題はないのですが・・・。
0780nobodyさん2010/02/07(日) 21:00:40ID:???
>>779
2010/2/7 20:58現在、1.2.6 zipはダウンロード出来ませんでした乙
Windowsでもtgzは解凍すれば使えるのでしょうか?
0781nobodyさん2010/02/07(日) 21:21:04ID:???
ググれカス
07827792010/02/07(日) 22:43:52ID:???
>780
確認していただき、ありがとうございます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class BoardsController extends AppController {

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

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

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

ありがとうございます!
そういう規約だったのですね。熟読いたします。
0862nobodyさん2010/02/17(水) 23:48:29ID:???
>>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は対応してる。オレより頭いい。
0863nobodyさん2010/02/18(木) 00:50:16ID:???
>>862
ああこれは便利だね。
欲をいえば、cakephpで既に使われているクラス名(Fileとか)を弾いてくれるとうれしいな。
0864nobodyさん2010/02/18(木) 12:05:47ID:???
>>862

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

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

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

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

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

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

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

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

eclipse PDT, Netbeans, notpad++

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

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

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

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

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

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

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

1 $name = "boku no name";

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

よろしくお願いします。

失礼しました。
0918nobodyさん2010/03/03(水) 17:26:16ID:???
>>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';とかすれば切り替えできるし。
09199182010/03/03(水) 17:47:15ID:???
ああコントローラーのafterFilterで$this->outputをいじる方がいいのか。
使ったこと無かったんですんません。
0920nobodyさん2010/03/03(水) 19:08:03ID:???
>>914

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

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

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

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

仲良くやろうぜ

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

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

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

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

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

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

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

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

よろしくお願いいたします。
09339302010/03/04(木) 16:22:21ID:???
>>931
なるほど!
コントローラーとかコンポーネントに書くというのが思いっきりBad Cakeな考えだった
ありがとー
0934nobodyさん2010/03/04(木) 18:10:50ID:???
>>923
afterRenderだと$this->outputをいじるのは間に合わなかった気がする。
というわけで自分はafterFilterに一票。
0935nobodyさん2010/03/04(木) 18:26:07ID:???
ブラウザ判定などの、コントローラーでもビューでも使うようなコードってどこに書けばいいんでしょうか?
最初はコンポーネントに書いて
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)とかにすれば?」とか書かれているようですが
英文があまり理解できずどれがベターなのかわかりません…
09369342010/03/04(木) 19:04:12ID:???
やっぱ>>934は間違いかもしれないので、なかったことにしてくれ。
0937nobodyさん2010/03/04(木) 19:33:55ID:???
>>935
あー。以前あったなその状況。
キレイな解は思いつかなかった。
ヘルパーからコンポーネントにアクセスするか、dry無視して重複させるか
で、前者にしたな確か
0938nobodyさん2010/03/06(土) 00:23:15ID:???
JavaならXxxUtilsクラスとか作ってstaticメソッドにするけどな。
そういう融通は効かないのか?
0939nobodyさん2010/03/06(土) 01:33:46ID:???
うんクラスにしてvendorに入れておけばいいと思う。
で、App::importか、もうしょっちゅう使うならbootstrap.phpでrequireしておいてもいいし。
コアライブラリのInflectorとかの扱いが参考になるのでは。
0940nobodyさん2010/03/06(土) 04:53:46ID:???
たしかにブラウザ判定だからそうだね

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

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

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

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

そうなのです。

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

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

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

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

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

cake リレーション、 および アソシエーション でググって勉強したいと思います!
0948nobodyさん2010/03/08(月) 01:19:36ID:???
Security.levelをmediumに変更して使っているのですが、これだと
Session.timeoutが120なので200分でセッションが切れることになります。
しかし、gc_maxlifetimeのデフォルト値1440秒(24分)以上経過すると1/100の
確率でセッションが切れるようです。
timeoutの値に応じてこの値を変更する処理をCakePHP側に仕込む、という
ような話がCakePHP内で出たことはあるでしょうか。それともこれは開発者が
自分で変更すべきという指針なのでしょうか。ご存じの方教えてください。
0949nobodyさん2010/03/08(月) 09:49:22ID: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) 」
というアソシエーションの選択の質問に進んでしまうのですが、
なぜだかお解りの方はいらっしゃいますでしょうか?
0950nobodyさん2010/03/08(月) 13:49:25ID:???
AuthComponentとmodelのvalidateって、どうやって併用するんでしょう?
model.validateが成功したらAuthComponentのログインをしたんですが、
方法が全然分りません。
すみませんが、誰かヒントでもいいんで教えて下さい。
0951nobodyさん2010/03/08(月) 14:04:32ID:???
>>950
何をやりたいか良く分からんなあ
validate後saveして、すぐログイン状態にしたいってこと?
09529502010/03/08(月) 17:05:53ID:???
AuthComponentだと認証に失敗した場合のメッセージしか無いんで、
ユーザーID未入力や、パスワード未入力といった個別のエラーメッセージを表示したいんですね。
model.validateを、そのまま実装すると認証エラーのメッセージとvalidateのメッセージが同時に表示されてしまうので、
validateのメッセージだけを表示したいです。
0953nobodyさん2010/03/08(月) 21:07:56ID:???
cakephp1.2 のページネーションって SQLから取得したデータを加工した場合って
ページ数とか求めることできないかな。
例えば 100件のデータがある場合
・現在の表示件数 min max
・前のページ < 1 2 3 4 5 > 次のページ

ってやりたいんだけど。

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

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

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

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

ローカライゼーションのマニュアルを見ても説明が書かれておりませぬ。どなたかお助けを。
0964nobodyさん2010/03/10(水) 14:02:52ID:???
>>963
http://book.cakephp.org/ja/view/693/__
http://api12.cakephp.org/file/cake/basics.php#function-__
0965nobodyさん2010/03/10(水) 14:26:37ID:???
>>964

ありがとうございます!

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

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

【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));
}
}
0967nobodyさん2010/03/10(水) 19:04:30ID:???
>>966
アソシエーションしてるならsaveAll
してないなら、さきにvalidateだけかける
0968nobodyさん2010/03/10(水) 19:20:49ID:???
>>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);
}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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