【PHP】フレームワーク CakePHP
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2006/11/18(土) 20:53:22ID:???本家
http://www.cakephp.org/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
0809nobodyさん
2007/09/29(土) 11:44:45ID:???> ○ <h1><?php echo h($hoge) ?></h1>
> × <?php echo '<h1>' . h($home) . '</h1>'; ?>
上が○ならこれもOKってことだよな?
<h1><?php echo $helper->h($hoge) ?></h1>
>>806
> ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
いや、だからその先の.thtmlにコードが入っていたら結局同じことでしょ?
0811792
2007/09/29(土) 12:51:34ID:???>上が○ならこれもOKってことだよな?
><h1><?php echo $helper->h($hoge) ?></h1>
おk
>> ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
>いや、だからその先の.thtmlにコードが入っていたら結局同じことでしょ?
そのコードが○な感じで書かれてばおk
>>810
beforeRenderをコントローラー内じゃなくて
何か別のクラスに分離したいよね。
まあ自作してもいいけどね。
0812nobodyさん
2007/10/03(水) 20:59:09ID:???ビュー周りが気持ち悪くて、使いにくいな。
bakeで作られるソースの話だが、viewとeditのctpで統一感がない。
viewの場合、<?php echo $author['Author']['id']?> という形で表示。
つまり、$authorに全データがはいってくるわけだが、
editの方は、なぜか、echo $form->input('id');
モデル名は<?php echo $form->create('Author');?>で指定しているわけだが、
肝心のデータはどこから???
ふーん。$form自体がデータをもっちゃってるのね。
タグ出力だけの機能じゃないんだ。
で、$formにデータをセットしているところは?
へぇ、コントローラにヘルパーとしてFormを入れたら
勝手にデータ読んじゃうんだ。なんだこの仕様w
0813nobodyさん
2007/10/03(水) 21:39:13ID:???0814nobodyさん
2007/10/03(水) 21:57:16ID:???たぶん、そうなんだろうけど、直接読むところじゃないよな。
controller->dataはPOSTしたときのデータ専用に使っとくれ。
ということで、そこらあたりがっちり書き換えてしまった。
表形式でのデータ編集もしたかったし、
Formヘルパーは使わずに独自のヘルパー(?)作ったよ。
0815nobodyさん
2007/10/04(木) 09:53:08ID:???まあオプションでいちいち
指定するとタグ直書きとあんまり代わらないからな。
ただ、独りよがりな仕様は否めない。
勝手にオプションを追加しておいて
それを削除するにはソースいじらにゃならん、とか
0816nobodyさん
2007/10/09(火) 16:06:42ID:???ちんこの美しさは半端ない
あれはまさに神の授けた人類の至宝だね
りっぱなやつを見ているだけで俺なんか
イきそうになるよ
だからお前も一緒にホラ や ら な い か?
ありくい
0817nobodyさん
2007/10/13(土) 00:42:51ID:???複数のmodelで使うバリデーションってどこに書けばいいの?
本も買ってみたんだけど、>>648でもふれられているように、自前の
バリデーションの説明は載ってなかった…
0818nobodyさん
2007/10/13(土) 03:00:25ID:???中間に別のModelをはさんでそこで書いてもいいが。
0819nobodyさん
2007/10/13(土) 06:46:38ID:???AppModelでいいのか。
なんかcake/ディレクトリに手を加えるのに抵抗あったからapp/の中のどこかかと思った。
さんきゅー。
0820nobodyさん
2007/10/13(土) 09:05:42ID:???0821nobodyさん
2007/10/13(土) 18:51:56ID:???ありがとうございます。
cake/app_model.phpを見たら
>Create the same file in app/app_model.php
って書いてありますね…
見落としてました。
0822nobodyさん
2007/10/15(月) 01:21:45ID:???いや俺を含めてね。
0823nobodyさん
2007/10/15(月) 16:42:00ID:???0824nobodyさん
2007/10/15(月) 16:56:02ID:???0825nobodyさん
2007/10/15(月) 18:58:29ID:???0826nobodyさん
2007/10/15(月) 21:37:52ID:???0827nobodyさん
2007/10/15(月) 21:50:58ID:???[フライング]
0828nobodyさん
2007/10/16(火) 10:46:59ID:???0829nobodyさん
2007/10/16(火) 17:34:23ID:wp+6b1Ucチュートリアル通り進めてると
思うんだけど原因がわかりませぬ。
だれか教えてください。
0830nobodyさん
2007/10/16(火) 19:47:20ID:???0832nobodyさん
2007/10/16(火) 22:24:04ID:???「使うに」の”に”がおかしいっていいたいんだろ?教養ない奴。
理解できなかったら、副助詞の「は」を補って
まだフレームワーク使うには、早いので、勉強してください と読め。
0833nobodyさん
2007/10/16(火) 23:07:35ID:???どこにVALID_NOT_EMPTY定数入れておこられたん?
エスパーきぼんぬと言われてもしょうがない
0834nobodyさん
2007/10/16(火) 23:08:02ID:???0835nobodyさん
2007/10/16(火) 23:31:16ID:???0836nobodyさん
2007/10/17(水) 00:55:10ID:???0837nobodyさん
2007/10/17(水) 00:57:48ID:???「使うには早い」 Google 検索結果・・・17,900件
1件のブログの人?
0838nobodyさん
2007/10/17(水) 01:15:36ID:???0839nobodyさん
2007/10/17(水) 01:32:54ID:???0840nobodyさん
2007/10/17(水) 16:55:45ID:???どっかの誰かさんが書いた糞本と違って内容が濃いことを願います。
本の質も少しでもRailsを模倣してほしいよ。
0841nobodyさん
2007/10/17(水) 17:31:04ID:???やり方がわからなくて今はmodifiedを1回持ってきて再設定してるんだけど。
>>840
Railsは書籍がいっぱいあるからうらやましいよね。
0844nobodyさん
2007/10/17(水) 19:20:08ID:???0845841
2007/10/17(水) 19:56:57ID:???いや、例外的に更新して欲しくないという時もあるよ。
その例外のためにmodifiedとは別の項目つくるのもスマートじゃないし。
So-net blog:sandmanの旅行の写真”とか”:CakePHP その7 - createdとmod..
http://blog.so-net.ne.jp/sand_man/2007-07-24
>ついでに、コントローラーごとに、この機能をオン/オフする変数が欲しい。
0846nobodyさん
2007/10/17(水) 20:24:38ID:???0847nobodyさん
2007/10/17(水) 21:54:28ID:q7TPqrYz初期設定とかはどこですればいいんでしょう?
例えばファイルから設定を読み込むとか、
読み込んだ設定をセッションに登録するとか…
0848nobodyさん
2007/10/17(水) 23:02:39ID:???コントローラの話?なら
var $uses = array('Model', 'Model2');
で定義してアクセスするには
$this->Model->ググれ();
>>847
/app/config/bootstrap.phpとか
0849nobodyさん
2007/10/17(水) 23:57:11ID:???おお、DB使わなくてもそれでいけるんですね(?)
すごいなあ
ついでになんですが…
独自の関数(例えばhoge)ってどこに定義すればいいんでしょう…
AppControllerに定義すると継承されるので、そのURLでアクセスされるとアクションとして処理されちゃいますよね
class AppController extends Controller {
function hoge {
}
}
class FooController extends AppController {
}
とかだと、http://nantoka.com/hoge/
でhoge()がアクションとして処理されそうな気が…
むずいなあ・・・
早く本でないかなあ
0850nobodyさん
2007/10/17(水) 23:58:11ID:???>でhoge()がアクションとして処理されそうな気が…
訂正…
とかだと、http://nantoka.com/foo/hoge/
でhoge()がアクションとして処理されそうな気が…
0851nobodyさん
2007/10/18(木) 01:17:44ID:???0852nobodyさん
2007/10/18(木) 02:15:22ID:???0853nobodyさん
2007/10/18(木) 08:53:55ID:???>>852
どうもです m__m
_とかつけるとアクションとしては呼ばれないんですかね?
がんばって調べてみます
0854nobodyさん
2007/10/18(木) 14:39:39ID:???$html->file('Sample/pic');
でアップロードしたんですけど、$this->data['Sample']の中には
ファイル名しかない・・・
$this->dataの中をprint_rで見ても、tmp_nameとか入って無いんですが。
これって何か設定しないと駄目なこことかありますか?
0855nobodyさん
2007/10/18(木) 15:13:11ID:???move_uploaded_file()とか普通に使え
0856nobodyさん
2007/10/18(木) 15:17:15ID:???formにenctype入れるの忘れてました。
テヘ
0857nobodyさん
2007/10/18(木) 15:33:11ID:Tkva8LEl改行を改行コードつまり"\r\n"ではなく、'\n' で
記述するのは仕様なのか?
コード読むと、__stripで改行コードさくっと消していたり、
$message = str_replace(array('\r','\n'), '\n', $message);
というコードがあったりするんだが・・・
あとメールの仕様って改行コードは文字コードとしての\r\nでいいの?
0858nobodyさん
2007/10/18(木) 15:43:49ID:Tkva8LElhttps://trac.cakephp.org/ticket/3381
バグでいいんだよな?
コアを修正するとあとで面倒なんだよな。
0859nobodyさん
2007/10/18(木) 16:06:31ID:???改行削除しているのは、__strip関数なんだよなぁ・・・
$message = $this->__strip($message, true);
__strip関数の第二引数をfalse(省略すると)
改行コードは削除されないんだが、
そうすると第二引数をtrueにしているところがなくなるぞ?
何か意味があってそういうことしたのだろうが、
よくわからん。履歴も見たけどよくわからん。
だれか、EmailComponent使っているのだろうか・・・
0860nobodyさん
2007/10/18(木) 16:12:14ID:7IUQWVSkそういう場合って、セッションにでも保存しない限り、毎回ファイル読み込まんといけんの?
class Data extends AppModel {
var $name = 'Data';
var $filename;
function load() {
ファイル読み込み処理
$this->filename = ファイル名;
}
}
class UserController extends AppController {
var $name = 'User';
var $uses = array('User', 'Data');
function view() {
if (!$this->Session->check('initialized')) {
$this->Template->load(WWW_ROOT . 'template/');
$this->Session->write('initialized', true);
}
$this->set('file', $this->Data->filename);
}
}
とかやってるんだけど、2回目以降のアクセスでビューの$filenameが空になる…
0861nobodyさん
2007/10/18(木) 16:14:06ID:???class Data extends AppModel {
var $name = 'Data';
var $filename;
function load() {
ファイル読み込み処理
$this->filename = ファイル名;
}
}
class UserController extends AppController {
var $name = 'User';
var $uses = array('User', 'Data');
function view() {
if (!$this->Session->check('initialized')) {
$this->Data->load(WWW_ROOT . 'template/');
$this->Session->write('initialized', true);
}
$this->set('file', $this->Data->filename);
}
}
$filenameが空になる。
毎回ファイル読むかセッションに保存しないといけないんかな?
0862nobodyさん
2007/10/18(木) 16:21:41ID:???いまいち何がやりたいのかよくわからないけど、
>2回目以降のアクセスでビューの$filenameが空になる…
それは当たり前なんじゃないかな。
0863nobodyさん
2007/10/18(木) 16:29:38ID:???DBなしでやってるんだけど、どうもうまくいかない…。
セッション initialized = false のとき(最初)
1. DataModel: $this->Data->load(); で $this->Data->filename にファイル名が入る
2. UserController: $this->set('file', $this->Data->filename でビューにファイル名を渡す
3. ビューで <?php echo h($file) ?> でファイル名が表示される
セッション initialized = true のとき(2回目以降)
1. $this->Data->filename にはすでにファイル名が入ってる(はずだと思うんだけど…)
2. UserController: $this->set('file', $this->Data->filename でビューにファイル名を渡す
3. ビューで <?php echo h($file) ?> でファイル名が表示される(はずなのにされない)
なんか間違ってる?(^^;
0864nobodyさん
2007/10/18(木) 16:46:11ID:???セッションに保存するしかないのかな?
なんかしっくりこない(・・;
0865nobodyさん
2007/10/18(木) 16:53:18ID:???DB使いましょう。
> セッション initialized = false のとき(最初)
> 1. $filename = 'hoge'; で $filename にファイル名が入る
>
> セッション initialized = true のとき(2回目以降)
> 1. $filename にはすでにファイル名が入ってる(はずだと思うんだけど…)
って言ってるのと同じだと思うんだけど。
DBなりクッキーなりセッションなりに記憶しないと、変数のデータは
ページ出力と同時に全て消えるよ。
0866nobodyさん
2007/10/18(木) 16:58:29ID:???>ページ出力と同時に全て消えるよ。
そうなのかあ
普通の感覚でやってたので混乱した…
ありがとう!
DBを使わないものなので、セッションにでも保存することにします >_<
0867nobodyさん
2007/10/18(木) 17:02:24ID:???こういうのもDBでやるもんですかね。
0868nobodyさん
2007/10/18(木) 17:05:05ID:???ttp://cakephp.jp/modules/newbb/viewtopic.php?topic_id=754&forum=3
こういうのでは?
0869nobodyさん
2007/10/18(木) 17:17:12ID:???俺はDBでやってるよ。
・・・でも読み込み重いかもなんておもちゃって
ファイルにキャッシュする機能つけちゃったけどなw
save時に全データをファイルにキャッシュ。通常はファイルから読み込み。
DBにした理由は、設定画面を作るのが面倒だったから。
0870nobodyさん
2007/10/18(木) 17:42:09ID:XZqNQY+Z0871nobodyさん
2007/10/18(木) 18:00:34ID:???どうも。DBにしといたほうが無難っぽいすな。
所でテーブルが無いとモデルとかコントローラとか作れないでしょうか?
0872nobodyさん
2007/10/18(木) 18:02:46ID:???これ嫁。
0874nobodyさん
2007/10/18(木) 22:21:39ID:???セッションがうまく読み込めないんだけどバグ?仕様?
もちろんリダイレクト前に、コントーラAでセッションに保存してるし
コントローラBではセッションの読み込みをしている
読み込めないというより、コントローラAで保存ができないのか?
謎すぎる…
$this->redirectはroutes.phpの設定無視されるのか?
0875nobodyさん
2007/10/18(木) 22:23:34ID:???すまそ 自己レス
beforeRenderでセッション保存してたのがいけなかったみたい
保存前にリダイレクトしてたってことか orz
0876nobodyさん
2007/10/18(木) 23:26:42ID:???少し慣れてくると使うのが楽しくなってくるね ヽ(゚∀゚)ノ
0878871
2007/10/19(金) 07:26:08ID:???これ書き込みは出来ても読み込みはどうすればいいんでしょうか?
0879nobodyさん
2007/10/19(金) 17:21:16ID:???0880nobodyさん
2007/10/21(日) 09:03:30ID:???もうちょういでCake本が出るなぁ
みんな買うの?
0881nobodyさん
2007/10/21(日) 11:00:36ID:???アフィうぜえ。
通報しておいた。
http://www.amazon.co.jp/exec/obidos/ASIN/4839924317/
0883nobodyさん
2007/10/21(日) 17:33:03ID:???0884nobodyさん
2007/10/21(日) 21:00:01ID:???Cakeの勉強続ける意味ってあるのかな。
Railsと併用とか戻ったとかいう人いる?
もちろん、Rails使えない環境ではCake使えるけどRails知ってて敢えてCake使ってるっていう人。
0885nobodyさん
2007/10/21(日) 21:06:47ID:???(;゚ Д゚) 両方使えて損は無いだろ?時間が問題になるだけで。
0886nobodyさん
2007/10/21(日) 21:27:02ID:???0887nobodyさん
2007/10/22(月) 12:31:50ID:???どうすればいいんでしょうか?
後プログラマに依存しないで静的ページを追加していく方法とかありますか?
0888nobodyさん
2007/10/22(月) 12:53:18ID:???適当なディレクトリにインストールすれ
静的ページの定義がわからんが、単にファイルとして設置もできるしCake通った場合もおk
0889nobodyさん
2007/10/22(月) 20:39:14ID:???0890nobodyさん
2007/10/22(月) 20:53:25ID:???0891nobodyさん
2007/10/22(月) 23:22:05ID:???0892nobodyさん
2007/10/23(火) 16:42:02ID:???0893nobodyさん
2007/10/23(火) 22:15:53ID:???でもこれが組み込まれていないorz
afterFind not called on associated Model Behaviours - diff attached
https://trac.cakephp.org/ticket/2056
バグだろ? 早く公式で組み込まれないかな・・・
0895nobodyさん
2007/10/25(木) 00:35:51ID:???0896nobodyさん
2007/10/25(木) 01:04:02ID:???わかっていたことだけど、alpha版に手を出すと面倒だねw
>857のメールの件だが、動かしてはいないんだがソース見た限りではちゃんと直っているようだ。
コントローラーのnamedArgsがなくなってpassedArgsだけになっていた。ほとんど同じようなものなので、簡単に修正。
namedArgsはもともと使ってはいけないものだったのだろうか?
なんていうんだっけ、名前つきURL? paginationとかで使われている/controller/action/name:value の「:」という区切り記号。
以前はコントローラの、$argSeparatorで指定できたのが、Routeの仕事になっている。まあ意味を考えれば妥当な変更だね。
設定するにはconnectNamedを使う。でいいのだろうか? この関数が何のためにあるのかよくわからない。
とりあえず/app/config/routes.phpにRoute::connectNamed(array(),array('argSeparator'=>'区切り記号'));を追加して設定できた。
これでいいのかわからんが、コードを見る限り区切り記号変更以外に副作用はないようだ。
/app/config/core.phpがことごとく変えられているw
といってもdefine('〜〜〜',〜〜) が Configure::write に変わっただけなんだが。
おかげで、DEBUG定数を見ているコードを修正する必要がある。
Configure::read('debug')に変えるだけだけど。
テストのページ(simpletestを起動するためのtest.phpのところ)の
charasetがUTF-8に修正された。うんよかった。
Single Table Inheritanceなるものをつかっているのだが、動かなくなった。
(詳細 http://cakephp.seesaa.net/article/23101637.html)
(大元 http://www.ifisgeek.com/tutorials/implementing_single_table_inheritance_in_cakephp)
自分はいろいろ変更しているのでそのままあてはまらないかもしれないが、
大元のコードSnippet #3: Complete definition for the Current Model.の $table = $this->__table;の次の行に
$this->useTable = $table;を追加したら動いた。まあこれは大元が悪い気がするが。
とりあえず、俺にとって問題が出た修正点はこんなところかな?
0897nobodyさん
2007/10/25(木) 12:48:02ID:???cakeコマンドの検索パスから、
/app/vendors/shells が無くなった?
/venders/shellsに変えればいいだけなんだが、
1.2.0.5875pre-betaでもパスは残っているしこれはバグだろうか?
0898897
2007/10/25(木) 13:06:00ID:???今までは、/cake/consoleに移動して、cakeコマンドを実行していたのだが、
それでは/app/venders/shells/を見てくれなくなって
/app で実行したら見てくれた。
これは、デフォルトの動作で、-app 引数で見るパスは変更可能。
0899nobodyさん
2007/10/25(木) 15:21:22ID:QUb8umf5わかっていたことだけど、alpha版に手を出すと面倒だねw
同感。ちなみに、まだ本屋いってないけど本でたかな。
cakephpの新しい本。早く読みたい。
0900nobodyさん
2007/10/25(木) 16:10:51ID:???0902nobodyさん
2007/10/25(木) 20:40:27ID:???面倒は面倒だが、書いてある文章よりかは面倒じゃないぞw
比較的マイナーなことをしているからそうなるわけで、
ほとんどの人はすんなり移行できるんじゃないかな?
>>900
> 1.1でつくってて本当によかった
それはそれで、1.2へ移行するときに面倒なことが・・・
結構かわっているしね。formヘルパーとかPaginationとか。
俺は、EmailComponentとユーザー関数によるValidationと
Behaviorと名前つきURLパラメータとか使っているから
1.2じゃないともう無理。
0903901
2007/10/26(金) 00:12:57ID:???俺もEmailComponent、Validationの二つが決定的で1.2を使ってる。
1.1からだとhtmlとformヘルパー周りの変更は確かにめんどくさそうだね。
0905nobodyさん
2007/10/26(金) 11:30:28ID:???0906nobodyさん
2007/10/26(金) 11:31:00ID:???Modelname/columnnameなどの文字列をモデル名とカラム名の配列に
変換してくれる(または、その逆をしてくれる)関数はありませんか?
0907nobodyさん
2007/10/26(金) 11:37:40ID:???1.2.0.5427alphaで、admin routingを使ったときの
/admin/controllers/indexにアクセスしたときの
action名(コントローラ->actionおよびコントローラ->params['action'])って
indexじゃなかったっけ?
1.2.0.5875pre-beta の場合、admin_index になっているような・・・。
仕様変更? それともなんか設定不足かなにかかな?
0908907
2007/10/26(金) 12:02:50ID:???https://trac.cakephp.org/ticket/3440
これの修正を適用したら直った。
あっ。直ったと言うのは正確にはソートの部分ね。
>>907の直接の問題は、paginationを使ったときテーブルのヘッダ部分が
/admin/controllers/admin_index/page=1/sort=type/direction=asc と
admin_indexが追加されてしまっていること。
パッチを適用したらちゃんと直った。
actionが以前、admin_indexだったかどうかは忘れたが
これからはこれなのだろう。
0909907
2007/10/26(金) 12:15:32ID:???これでアクセスしたときは、
function admin_index($value) {
の$valueにabcが入るのに、
/admin/controllers/index/named:1/abc
これでアクセスしたときは、
function admin_index($value) {
の$valueが、なんで1なんだよ?
/admin/controllers/index/abc/named:1
のときはちゃんとabcが入るくせに
(゚Д゚)ハァ? (゚Д゚)ハァ?
1.2.0.5875pre-beta は
こまかいバグがおおいなぁ。
レス数が900を超えています。1000を超えると表示できなくなるよ。