【PHP】フレームワーク CakePHP 8ホール目【1.3】
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2010/03/18(木) 10:00:59ID:6+kHM8kHCakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※sage推奨
テンプレは>>1-5くらい
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0002nobodyさん
2010/03/18(木) 10:01:29ID:???CakePHP1.2系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.2
CakePHP 1.2.x API
http://api12.cakephp.org/
■1.3系
CakePHP1.3系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.3
CakePHP 1.3.x API
http://api13.cakephp.org/
1.2から1.3への移行ガイド
http://book.cakephp.org/ja/view/1561/
CakePHP 1.3の新機能
http://book.cakephp.org/ja/view/1572/
■Lithium(li3) PHP5.3+
http://rad-dev.org/lithium/
0003nobodyさん
2010/03/18(木) 10:01:49ID:???【PHP】フレームワーク CakePHP 7ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1251789126/
【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/
■関連スレ
【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】下らねぇ質問はID出して書き込みやがれ 94
http://pc11.2ch.net/test/read.cgi/php/1268835461/
symfony PHPフレームワークpart2
http://pc11.2ch.net/test/read.cgi/php/1268753684/
[PHP][フレームワーク]CodeIgniterスレ
http://pc11.2ch.net/test/read.cgi/php/1177683436/
【PHP】Ethna part.2【国産フレームワーク】
http://pc11.2ch.net/test/read.cgi/php/1186096518/
【PHP】フレームワークMapleに舌鼓
http://pc11.2ch.net/test/read.cgi/php/1122105465/
0004nobodyさん
2010/03/18(木) 10:02:03ID:???CakePHPカンファレンス東京(2008)
http://conference.cakephp.jp/
CakeMatsuriTokyo2009
http://matsuri.cakephp.jp/
連載: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/
■ver1.1用
CakePHP プログラマーズ リファレンスガイド
http://cakephp.jp/doc/
CakePHPフレームワークによる快速WEB開発 |codezine
http://codezine.jp/a/article/aid/670.aspx
0005nobodyさん
2010/03/18(木) 10:02:22ID:???・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
PHPで作る携帯サイトデベロッパーズガイド
http://www.amazon.co.jp/dp/4798024767/
・ver1.1系
CakePHPガイドブック
http://www.amazon.co.jp/dp/4839924317
Fast CakePHP
http://www.amazon.co.jp/dp/4774133418
0006nobodyさん
2010/03/18(木) 10:04:01ID:???補足があればどうぞ
Have a Nice Cooking !
> cake bake all User
0008nobodyさん
2010/03/18(木) 13:31:33ID:???そろそろ1.3への移行を考えなきゃいけない時期かね
1.1→1.2よりかは1.2→1.3の方がやるべきことは少なそうだけど、1.3の新機能のメリットはそこまで大きく感じない・・・
0009nobodyさん
2010/03/18(木) 13:55:10ID:???試しに移行を進めてるけど、俺のソースだと結構直すとこいっぱいあったな。
例えばhtmlヘルパーのオプション設定とか、
ちぐはぐだなと思ってた部分はだいぶ合理化されてるから気分的にはすっきりしたけど。
0010nobodyさん
2010/03/19(金) 13:48:38ID:???cakephp の debug を
$_SESSION['Auth']['User']['email'] = 'admin@hoge.com';
でログインしているときのみ、 2にしたいんだけど、どうすればいいかな。
beforeFilter や beforeRenderでやってもだめみたい。
core.php を 0 にしちゃうと、コントローラーで個別に Configure::write('debug', 2); をやっても
エラーがちゃんと表示されないんだよね。
0011nobodyさん
2010/03/19(金) 14:04:16ID:???エラーって何だろ?
ふつうにbeforeFilterやbeforeRenderで変えられるよdebugは
>>10の例ならbootstrap.phpで変えても良いけど
0013nobodyさん
2010/03/19(金) 19:16:46ID:qSSo5h5kまず、やりたいことなのですが。
DBconsultantsのmetroフィールドに01,03,11,22,33,34が入っていたとして
この中のどれかを含んでいたらconsultants全てのデータを取ってきたいのです
view
1~47の都道府県がチェックボックスになっています。
<?php e($form->checkbox('Page.metro.'.$prefectureHashModel['Prefecture']['pre_id']))?>
0014nobodyさん
2010/03/19(金) 19:18:17ID:qSSo5h5k// チェックが入った物だけを取得し、配列に格納
$metroHash = array();
foreach($this->data['Page']['metro'] as $key => $value){
if($value == 1){
$metroHash[] = 'metro Like ' . "%".$key."% ";
}
}
// 配列を文字列に変換
$metroHash = implode(' or ',$metroHash);
$consultantHashModelArray = $this->Consultant->query('SELECT * FROM `consultants` WHERE ' .$metroHash);
ここでこのSQL文を使えばできるのですが、今回やりたいのは下のpaginatorででして
どのようにすれば上のSQL文と同じ処理をしてくれるかがわかりませんので教えて頂けないでしょうか?
$conditionsHash = array();
$conditionsHash['metoro LIKE ?'] = なんたら?
$this->paginate = array('Consultant' => array('conditions' => $conditionsHash,
'limit' => 10,
'order' => array('consultant_id' => 'DESC'),
'page' => 1));
0015nobodyさん
2010/03/19(金) 19:27:50ID:???0016nobodyさん
2010/03/19(金) 20:20:26ID:???みなさんはどのように解決されていますか?
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1153&forum=3&post_id=2359
こちらではPEAR側のソースを書き換える方法が提示されていますが、
できればソースの書き換えはしたくないです。
そもそも、コアクラスとか定数にprefixがついてないのっていろいろと問題あるとおもうのですが・・・どうなんでしょう。
0017nobodyさん
2010/03/19(金) 23:42:18ID:???モデル名からなにやりたいのか想像つきにくいよ。
たぶんconsultants_metorosテーブルを作ってHABTMにするのが簡単なんじゃないかなと思うけど。
0018nobodyさん
2010/03/20(土) 16:12:27ID:???ttp://code.google.com/p/jsigniter/
0019nobodyさん
2010/03/20(土) 19:57:19ID:???Missing Controller
Error: UrllistController could not be found.
Error: Create the class UrllistController below in file: app\controllers\urllist_controller.php
というエラーが出てしまいます。
urllists_controller.phpをurllist_controller.phpに変更しても同じでした。
何か他に設定すべきことがあるのでしょうか?
0021nobodyさん
2010/03/20(土) 22:31:07ID:???チュートリアルで分からない部分があります。
コントローラとビューについて
ビューの画面に遷移しようとするとコントローラのメソッドが呼び出され
その結果、戻り値を反映したビューがブラウザに表示されると解釈していました。
しかし、editファンクション内の処理で行われるPostデータをsaveする命令は
ビューが表示された後にPost送信するときに実行されるように見えます。
この処理の流れがよく分かりません。
恐縮ですが、どなたか分かる方がいればご教授お願いします。
0022nobodyさん
2010/03/20(土) 22:50:56ID:???まず基本から。
ひとつのリクエストは、Controllerが(必要に応じてmodelとやりとりしながら)処理し、最終的にviewを表示して終了する
で、addやeditアクションについては、[1]フォームを表示する[2]postデータを保存する、のふたつのリクエストを同じアクションで行っているにすぎない
postされたデータがあるリクエストであれば[2]を、なければ[1]を行っている
それぞれ別のリクエスト
0024nobodyさん
2010/03/20(土) 23:13:50ID:???レスありがとうございます。
empty($this->data) ならば、フォームが表示される処理のみされる
(editの場合はreadされた値が代入され表示される)
ということですね。
丁寧に説明していただき、とても助かりました。
0025nobodyさん
2010/03/20(土) 23:42:34ID:???0027nobodyさん
2010/03/21(日) 00:53:04ID:???素直に本買った方が早いと思う
0028nobodyさん
2010/03/21(日) 10:11:29ID:???本買うことにします
>>26
googleで検索してもたいして有益なサイトはありませんね、国内サイトしか見てませんけど
0029nobodyさん
2010/03/21(日) 11:34:14ID:???0030nobodyさん
2010/03/21(日) 11:52:05ID:???前に誰かがやってた気がするんだけど
0031nobodyさん
2010/03/21(日) 11:52:20ID:???やっぱりcakephpは難しいのでCodeIgniterに移住します
公式のユーザーガイドが分かりやすくてフレームワーク初心者のぼくでもなんなくわかりやすいので
ありがとうございました
0033nobodyさん
2010/03/21(日) 13:54:33ID:???プログラマの将来のためにも
初心者向けの入り口は作ってあげたほうが良いよ。
まぁ、ほとんど挫折するだろうけど
0034nobodyさん
2010/03/21(日) 14:05:16ID:???カンタンでわりと実践的なチュートリアルを増やしたらいいかも
0035nobodyさん
2010/03/21(日) 15:09:25ID:???むしろ本だとbake中心だったりして実用的じゃない
0036nobodyさん
2010/03/21(日) 16:25:52ID:???あんまりやりすぎても負荷がかかるんだろうけど。
4,5個つなげる程度なら問題ないのかな。
0037nobodyさん
2010/03/21(日) 17:39:14ID:???0038nobodyさん
2010/03/21(日) 17:40:46ID:???0040nobodyさん
2010/03/21(日) 17:56:15ID:???0041nobodyさん
2010/03/21(日) 18:41:24ID:???俺は貴様を倒しに必ず戻ってくる
0042nobodyさん
2010/03/21(日) 19:08:58ID:???symfonyのQ&Aサイトのチュートリアルがあったと思うんだけど、あの程度のボリュームのやつがcakeであると良いと思う
暇と技術があれば俺が作りたいけど、どっちもあまりない
0043nobodyさん
2010/03/21(日) 19:19:40ID:???例えば普通のブログみたいなもんでも
記事にコメント、ユーザー、タグ、カテゴリー、トラックバック・・・って
いっぱいくっついてくるわけだしいいんじゃないの?
まあフィールドを選んだりcontainで必要なものだけ絞ったりはするけど。
0044nobodyさん
2010/03/21(日) 21:40:38ID:???業務系システムだと3桁とか珍しくないし
0045nobodyさん
2010/03/22(月) 07:12:01ID:???まぁなんにしても適切な結合で適切にインデックスとか
貼ってあれば問題なかろう
0046nobodyさん
2010/03/23(火) 01:07:32ID:???相当昔、仕事でJavaのStrutsというMVCフレームワークで
ガシガシ開発していたので、何とかなるだろうと思ったら、
意外につまづきました。主にひっかかったのは以下3点。
1点目:MVCのContollerでの設定方法が良く分からない
2点目:Modelの命名とテーブルの命名の関係性にはまる
3点目:ヘッダーのフッターの余分な表示どうにかなんない?
全て解決しましたが、
0047nobodyさん
2010/03/23(火) 01:08:59ID:???慣れれば快適なフレームワークですが、
ちょっと入り口は敷居が高い気がしました。
>>34 さんの「カンタンでわりと実践的なチュートリアルを増やしたらいいかも」
に同意です。
0048nobodyさん
2010/03/23(火) 07:11:46ID:3JpwvDQYConfigure::read & writeを利用しようと思うのですが、
セキュリティ上まずい点はありますか?
0049nobodyさん
2010/03/23(火) 07:48:44ID:fJcglhKE005048
2010/03/23(火) 08:29:31ID:???Configure::write('aaa', $_GET['nantoka']);
みたいにすれば、いつでもConfigure::read('aaa')で
内容を取り出せます。
Cookieを切っても保存されているのだけど
ちょっとどういう風に動いてる機能なのか、よくわからなくて。
0051nobodyさん
2010/03/23(火) 09:10:10ID:???あきらかにセッションごとじゃなくて
全員でひとつの設定になるよね
0053nobodyさん
2010/03/23(火) 09:55:42ID:???CodeIgniterみたいな丁寧なドキュメント級のサイト作ってくれたらアフィ毎日踏んであげてもいいですよ
ttp://codeigniter.jp/user_guide_ja/toc.html
0054nobodyさん
2010/03/23(火) 10:14:41ID:???>>44>>55
ありがとう!
以前レンタルサーバーで mysql too many connections ってエラーが出たのでSQL恐怖症で。
このエラーって一般的なレンタルサーバーだとめったに出ないものなのかな。
cakephp使ってないときだったので、sqlの組み方がおかしかったのかもしれなけど。
0055nobodyさん
2010/03/23(火) 10:31:46ID:CwgG/vKY以下のように[ ] で配列を作りたい場合、cakeではどのように入力したらよいのでしょうか?
<input type="text" name="name[]" />
echo $form->input('name[]');
このようにやっても上手くいかず。。
0056nobodyさん
2010/03/23(火) 10:45:51ID:???sageてね
http://book.cakephp.org/ja/view/189/Automagic-Form-Elements
第2引数で指定してください
0057nobodyさん
2010/03/23(火) 13:01:17ID:???たしか第2引数で
name => 'hoge[]'
みたいに指定すると、Securityコンポーネントで弾かれるはず・・・
解決策はしらん。
0058nobodyさん
2010/03/23(火) 13:24:29ID:???同居人が多いレンタルサーバーだとどこでも接続数が絞られてるからエラー出るよ
チューニングするとか、キャッシュするとかしかない
0059nobodyさん
2010/03/23(火) 17:42:20ID:???ありがとうございます。
mysqlとサーバーはほとんど知識無いんですけど、専用サーバーなら出ませんかね?
次エラーがさくらマネージドにしようか考え中です。
006155
2010/03/24(水) 08:07:39ID:???>>56
>>57
echo $form->input('Modelname.0.fieldname');
とすると解決しました!
ありがとうございます!
0062nobodyさん
2010/03/24(水) 10:07:09ID:???0064nobodyさん
2010/03/24(水) 10:39:46ID:???Paginatorでチェックボックス引継ぎって可能ですか?
10件ずつ表示したとして、次の10件に行っても以前の10件でチェック
していたチェックボックスは維持させていたいのですが。
可能でしたらやり方教えてくれませんか
0066nobodyさん
2010/03/24(水) 16:45:26ID:???専用サーバーだって、mysqlの設定とアクセスの数によっては出る
その辺はcakephpじゃなくてmysqlの話になるのでmysqlスレいって聞いた方がいいよ
0068nobodyさん
2010/03/24(水) 23:38:26ID:???などどう定義してますでしょうか?
作成した人のIP:created_ip
作成した人のHOST:created_host
更新した人のIP:updated_ip
更新した人のIP:updated_host
最後のdがdateのdであれば、以下のように定義?
作成した人のIP:create_ip
作成した人のHOST:create_host
更新した人のIP:update_ip
更新した人のIP:update_host
守ったほうがよい細かいDBの命令規則のページなどありましたら教えてほしいです。
0069nobodyさん
2010/03/25(木) 00:09:57ID:???>最後のdがdateのdであれば、以下のように定義?
-edは過去分詞形なんだが…。
それはさておき、作成した人、更新した人だったら
creator_ip、creator_host、updater_ip、updater_host
でいいんじゃないかと思う。
個人的にupdaterよりeditorのほうがしっくりくるんだけども。
0070nobodyさん
2010/03/25(木) 00:36:15ID:???マニュアルのモデルのところに出てる以外は別に決まってないので好きなようにどうぞ。
>>69 のように英語で考えてわかりやすいように・・・というか、
自分でコントローラーとかビューのコード書くときに「えっとフィールド名なんだっけ??」って
いちいち探さなくて済むように作っておけばいいよ。
0071nobodyさん
2010/03/25(木) 09:17:02ID:???上記のページはユーザー情報のedit画面です。
アドレスに指定された$idを元に、データベースから情報を抜き出しています。(例では$Idが43)
この$idの部分を $hashで表示する方法はないでしょうか?
http://localhost/scrap/users/edit/43 (これが今のやり方)
http://localhost/scrap/users/edit/7c02d52cc1be46217793f002640553d7 (これで元データを拾いたい)
下記が現在のスクリプトです。
function edit($id = null) {
if (!empty($this->data)) {
if($this->User->saveall($this->data, array('validate'=>'first'))){
$this->Session->setFlash(__('The Data has been saved.', true));
}
}
if (empty($this->data)) {
$this->data = $this->User->read(null, $id);
$this->set('data', $this->data);
}
}
単純に$idを$hashにすれば上手くいくかなと思いましたが、上手くいかず。。お助けくださいませ。
0072nobodyさん
2010/03/25(木) 09:23:01ID:???read()じゃなくてfind()を使いましょう
マニュアル読んで、editアクションで何が行なわれているかを理解するところから始めると良いよ
007371
2010/03/25(木) 09:32:04ID:???ありがとうございます!
スクリプトを以下のように書くとこうなりました。
http://www.imagecheese.com/gallery/ouo.jpg
function edit($id = null) {
if (!empty($this->data)) {
if($this->User->saveall($this->data, array('validate'=>'first'))){
$this->Session->setFlash(__('The Data has been saved.', true));
}
}
if (empty($this->data)) {
$conditions = array("hash" => $id);
$this->data = $this->User->findAll($conditions);
$this->set('data', $this->data);
}
}
データは取得できたけど、フォームに自動的に挿入されない。。
007471
2010/03/25(木) 09:34:29ID:???<?php echo $form->create('User',array("action"=>"show"));?>
<fieldset>
<legend><?php __('Edit Data');?></legend>
<?php
echo $form->input('address');
echo $form->input('Keyword.0.name');
echo $form->input('Keyword.1.name');
echo $form->input('Keyword.2.name');
?>
</fieldset>
<?php echo $form->end('Submit');?>
007571
2010/03/25(木) 09:40:46ID:???findall じゃなくて findで指定したら上手くいきました!
なんて馬鹿なんだ。。
007771
2010/03/25(木) 09:52:43ID:???すぐに聞かずに自分で悩む時間を大切にします!
この試行錯誤する過程が一番身になるんですよね。。
007864
2010/03/25(木) 17:45:28ID:???すみませんがPaginetorでの具体的なやり方教えていただけませんか?
0080nobodyさん
2010/03/25(木) 22:54:10ID:???どうすればいいか考えればいい。
0081nobodyさん
2010/03/25(木) 23:49:51ID:???ただ「教えてくれ」と言ってる奴ってダメだよ。
「ここまで調べたけど、ここが分からない」というのが本来の聞き方でしょ。
ダメ人間に餌を与えすぎると無意味に肥え太るぞ。
0082nobodyさん
2010/03/26(金) 07:28:24ID:???とりあえず、それぞれの値を保存、取得するのに
いくつかのやり方があるということ
どういうサイトを作っているのか、晒してくれれば
見にいくよ
008364
2010/03/26(金) 09:23:56ID:???ちなみにチェックボックスは
<?php e($form->checkbox('Model.name.'.$id))?>
という形でこれをforeachで繰り返し出してます。
POSTで来るなら
foreach($this->data['Model']['name'] as $key => $value){
if($value == 1){
}
見たいな感じの処理でいいと思うのですが
もう少しpaginatorを勉強します
すみませんでした
0084nobodyさん
2010/03/26(金) 11:40:01ID:???paginatorというブラックボックスを前にして、たぶん本質とは全然関係なさそうなところで
引っかかってるだろうから俺は >>80 を書いたんだけども、
paginatorは一旦頭から切り離す。どのページに推移しようがやることは同じだって。
008664
2010/03/26(金) 13:12:20ID:???まず、検索フォーム(page_contololler)から『アイス』と入力して検索
データベースから『アイス』を含むユーザーを取ってきます。
ここは
// 検索条件
if (env('REQUEST_METHOD') == 'POST' ) {
$this->Session->write('pageHash', $this->data['Page']);
$conditionsHash = $this->getWhereParameters($this->data['Page']);
} elseif (isset($this->passedArgs['Page'])) {
$this->data['Page'] = $this->Session->read('pageHash');
$conditionsHash = $this->getWhereParameters($this->data['Page']);
} else {
$this->Session->delete('pageHash');
$conditionsHash = array();
}
//検索条件
function getWhereParameters($pageHash) {
$conditionsHash = array();
$conditionsHash['name' Like ?] = $pageHash['page']['name'];
}
$this->paginate = array('Model' => array('conditions' => $conditionsHash,
'limit' => 10
'page' => 1));
こういった感じで$conditionsHashをsessionで渡して
paginatorの次へを押した場合検索条件を引き継ぐようにしています。
008764
2010/03/26(金) 13:16:17ID:???出てくるわけなのですが。
paginatorの 次へ>> や << 前へを押した場合に
自分でチェックをつけたチェックボックスを維持したままページを移動したいのです。
それで最後にチェックの入ったユーザだけを取り出すというシステムです。
やはり表示上は裏で全部出してjavascriptでの制御が簡単なんですかね
0088nobodyさん
2010/03/26(金) 13:29:56ID:???次へ>>をsubmitにすれば、controllerでsessionに保存したりできるよね
しかし、どちらにせよjavascriptは使うのではあるまいか、と思います
0089nobodyさん
2010/03/26(金) 13:31:55ID:???0090nobodyさん
2010/03/26(金) 13:38:22ID:???自分だったら
1)チェックボックスにonclickイベントつけて、ユーザーIDとチェック状態を非同期送信
2)1)をサーバー側のアクションで受けて、DBなりセッションなりに溜めとく
3)あとは溜めたステータス情報を持ち回って、煮るなり焼くなりお好みひゃっほー
あ、昼休みおわた
0091nobodyさん
2010/03/26(金) 14:55:35ID:???SQLへの負荷 はどれをみればいいのかな。
Nr Query Error Affected Num. rows Took (ms)
おしえてちょんまげ。
0093nobodyさん
2010/03/26(金) 15:45:33ID:???ご親切にありがとう!
ちなみにどれくらいまでが問題無い範囲なんだろ。
合計が 100越えたら重すぎるとか、300までなら余裕とか。
もちろんアクセス数などにもよるだろうけど。
009464
2010/03/26(金) 15:48:19ID:???今後じっくり考えてやってみます。
ただ、今回は時間があまりないのと自分自身のスキルがたりないのもあってで
ttp://css-eblog.com/javascript/javascriptpaging.html
を使ってすることにしました。
ありがとうございました。
0095nobodyさん
2010/03/26(金) 16:19:18ID:???ありっちゃありだけど
0096nobodyさん
2010/03/26(金) 19:09:52ID:???その旨をメッセージで表示するにはどうすればよいのでしょう。
(viewで表示分岐するのは分かるんですが、その前のAuthでどうするか)
非ログインユーザはゲストとして自動的に認証させる?という方法しか
思いつかないのですが、スマートな方法はありませんか。
0097nobodyさん
2010/03/26(金) 19:14:59ID:???現状でログインしているかどうかの判断で振り分ければいいのでは?
0098nobodyさん
2010/03/27(土) 11:07:00ID:???全データが多くなければそれでもいいと思う
1.3は触ってないからわからないけど
1.2なら、paginatorヘルパーで出力するときに引数でFORMのパラメータ渡せば
検索条件付のURLによるページングも作れる
0099nobodyさん
2010/03/27(土) 13:02:02ID:???Auth使ってるなら
$this->Auth->user()
で中身確認できたと思うけど
issetとかで判断すればいいんじゃない?
controllerね
0100nobodyさん
2010/03/27(土) 18:21:26ID:???基本的なことは一通り書いてあるけどねえ
0101nobodyさん
2010/03/27(土) 18:25:10ID:???答えるのは俺らの自由なんだし
0102nobodyさん
2010/03/27(土) 19:04:05ID:???http://pc11.2ch.net/test/read.cgi/php/1217883614/447
0103nobodyさん
2010/03/27(土) 20:46:53ID:???0104nobodyさん
2010/03/27(土) 21:30:03ID:???railsユーザーから見たら(Cake)PHPがNGなのは当然と言えば当然のような
0105nobodyさん
2010/03/27(土) 23:09:29ID:???0106nobodyさん
2010/03/28(日) 15:54:08ID:???0107nobodyさん
2010/03/28(日) 17:07:23ID:???0108nobodyさん
2010/03/28(日) 17:17:43ID:???CakePHPに影響あるかね?
0109nobodyさん
2010/03/29(月) 09:56:07ID:???http://bakery.cakephp.org/articles/view/cakephp-1-3-0-rc3-unleashed
0110nobodyさん
2010/03/29(月) 09:56:40ID:???0111nobodyさん
2010/03/29(月) 10:33:52ID:???ということは、下記のようにidなしのkeywordsテーブルを作成するのはNGなのでしょうか?
usersテーブル
id, address,
keywords テーブル
name, user_id (二つ合わせてプライマリーキー)
0113nobodyさん
2010/03/29(月) 10:53:18ID:???やはり。。いろいろやっても上手く動かなくて悩んでました。
ありがとうございます!
実はkeywordsテーブルで name と user_id が重複しないようにしたかったのです。
ローソン(name), 13(user_id)
ローソン(name), 13(user_id)
このように、データが重複しないように。
調べたところ、Cakephpにはそういったデータ用の関数はなさそうです。
直に MySQLの replace を書き込むのが吉でしょうか?
0116nobodyさん
2010/03/30(火) 00:21:02ID:???0117nobodyさん
2010/03/30(火) 13:39:29ID:???0118nobodyさん
2010/03/31(水) 12:25:20ID:???http://domainname.sakura.ne.jp/scrap/users/action
上記のアクションをcron設定したいです。
www/scrap/app/webroot/cron.php
「webrootにcron.phpを作成」
<?php
$_GET['url'] = "/scrap/users/action";
require_once ( dirname( dirname( dirname(__FILE__))) . "/index.php" );
?>
さくらのサーバコントロールパネルのcron設定 【実行コマンド】
cd /home/domainname/www/scrap/app/webroot ; /usr/local/bin/php cron.php
このように設定して、3月31日12時10分など、数分後の設定にして試してみても、上手くいきません。。
【参考にしたURL】
http://www.happyquality.com/2009/11/18/1088.htm
http://www.multiburst.net/ElectricBrain/2009/04/how-to-use-cron-on-cakephp
http://memo.mkmin.com/cakephp/?p=8
0119nobodyさん
2010/03/31(水) 16:53:41ID:???0121nobodyさん
2010/04/01(木) 04:55:05ID:???「ちゃんと実行されない」????
神様やスーパーマンじゃないんだから、「ちゃんと実行されない」と書かれてもお前が
何に困っているか?原因は何か?わかるわけないだろ!!!
表示されているエラーメッセージさらせ!
さくらレンタルサーバにも色々あるけど、どれ使ってる???
http://www.sakura.ne.jp/index.php
サーバに負荷掛けない為のcron使用時の制約はどうなってんの???
詳しい情報をさらせ!!!
cronがまったく動かないの?
他の物はcron正常に動くの??
0122nobodyさん
2010/04/01(木) 06:55:57ID:???0124nobodyさん
2010/04/01(木) 09:32:30ID:???0125nobodyさん
2010/04/01(木) 09:43:35ID:???優先事項は、問題を解決することだ
0126nobodyさん
2010/04/01(木) 09:56:57ID:???みんなの優しさに感動したからマジレスする
そのやり方なら、URL叩くと、アクションが実行されるよね?
動くなら、さくらのcronの設定という問題じゃない?
ほかのcronのスクリプトが動くかどうかを試したかな?
分からなければCakePHP関係無しに調べると良いよ
0127nobodyさん
2010/04/01(木) 09:59:56ID:???cd /home/domainname/www/scrap/app/webroot ; /usr/local/bin/php cron.php
これが動くのか、確認しようぜ
動くならcakeの問題じゃなく、cronの設定不備だと思う
0128nobodyさん
2010/04/01(木) 10:34:58ID:???0129118
2010/04/01(木) 11:00:53ID:???まずはcronの実行ログを確認する方法をさくらで調べてみます。
>>121
さくらのスタンダードです。 制約は1時間に一回のみです。
http://www.sakura.ne.jp/index.php
>>126
http://domainname.sakura.ne.jp/scrap/users/action
のURLを叩くと問題なくアクションは実行されます!
>>127.128
cronの実行ログがどこで見るかわからなかったので、先走ってしまいました。
まずは実行ログを探してきます!
0130nobodyさん
2010/04/01(木) 11:33:27ID:???wget http://domainname.sakura.ne.jp/scrap/users/action
をcronで呼ぶとか
0131118
2010/04/01(木) 12:05:53ID:???レスありがとうございます。なんとか、上手く動きました! dirnameの階層が間違っていたようです。
さらに、cronのエラーメールも、さくらの初期パスワード設定を入力していなかったので届かなかったようです。
最終的な設定は以下です。
www/scrap/vendors/cron/scrape.php
<?php
$_GET['url'] = "/users/action";
require_once dirname(dirname(dirname(__FILE__))) . '/index.php';
?>
【さくらのcron設定】
cd /home/domainname/www/scrap/vendors/cron ; /usr/local/bin/php scrape.php
みなさん、暖かいアドバイスどうもありがとうございました。。
0132nobodyさん
2010/04/01(木) 20:16:24ID:???開発者の皆さん、ひとまずお疲れ様です。
皆様は今夜旨い酒が飲めていますように。。。
未だ修羅場の職場より逃避カキコ sage
0133nobodyさん
2010/04/01(木) 23:51:38ID:???0134nobodyさん
2010/04/02(金) 00:37:40ID:???0135nobodyさん
2010/04/02(金) 00:41:07ID:???うけられる仕事の幅も広がった。
でも仕事がどんどん難しくなっていく…勉強ばっかりだ
0136nobodyさん
2010/04/02(金) 03:37:20ID:???・・・はずだった
0137nobodyさん
2010/04/03(土) 07:39:42ID:???日本人の質を低下させたのは実はゆとり教育などではなく馬鹿でもチョンでも学士様に仕立て上げる悪平等教育なんだよ
今やむしろチョン様大歓迎だろ
昔の日本はドイツ式で大学へ行くのは本当に優秀な人間だけで普通の子は小学校へも行かず奉公へ出たもんだ
戦前世代だとそういう中から優秀な経営者や作家が生まれているだろ
脱ゆとりも結構だけどこの悪平等の是正なくして日本は再生しないよ
0138nobodyさん
2010/04/03(土) 22:20:39ID:???小さい時から、目標がある人間は、それで良いが、
やりたい事に気がついて、勉強できる環境が、ないのも微妙だろ。。。
実際、ほんとにやる気がある人間は、30でも40でも勉強出来る環境に行くけど、
全員そんなに意思は固くない。
0139nobodyさん
2010/04/05(月) 16:39:35ID:???一旦HTMLコーディングしたものを、こっちでVIEWのテンプレートに書き換え?
0141nobodyさん
2010/04/05(月) 18:45:04ID:???マスタテーブルの表示・追加・削除画面を作っているんですが
Modelのsaveが実行されません。(INSERTされない)
function add(){
if (!empty($this->data)) {
if ($this->JimushoMaster->save($this->data)) {
$this->flash('Your post has been saved.','/jimusho_masters');
}
}
}
こんな感じで行ってるんですがナニが悪いんでしょう?
モデルJimushoMasterはid(int, unsigned, auto_increment)とname(varchar)しか
ない簡単なものです。
add.ctpでは
<h1>事務所追加</h1>
<?php
echo $form->create('jimusho_master');
echo $form->input('name');
echo $form->end('保存');
?>
とだけしています。
0142nobodyさん
2010/04/05(月) 18:55:28ID:???これだけじゃ詳しくは分からんけど、validateに失敗しているんじゃない?
debug($this->JimushoMaster->invalidFields());
をsave失敗時に実行してみたら何か入ってるんじゃないかな
saveされないというのはSQLが実行されずにaddのフォームが表示されるんだよね?
0143nobodyさん
2010/04/05(月) 18:58:10ID:???Office / offices / OfficesController
0144nobodyさん
2010/04/05(月) 22:59:55ID:1CfLL9NS半角に変換したいのですが、
そういう処理はどう書けばいいでしょうか?
0145nobodyさん
2010/04/05(月) 23:16:53ID:???0146nobodyさん
2010/04/05(月) 23:20:10ID:???とにかくマニュアルは一通り目を通しておこうよ。
覚えなくてもいいけど、どこでどんな処理ができる・・・ってだいたい見当つくでしょ。
0147nobodyさん
2010/04/05(月) 23:23:16ID:???0148nobodyさん
2010/04/06(火) 01:21:23ID:???0149nobodyさん
2010/04/06(火) 04:05:02ID:???中でdataを加工してもviewまで引っ張れないのですよ
0150nobodyさん
2010/04/06(火) 09:43:10ID:???何でviewに変換後のデータが必要かは知らないけど、それが書いてなきゃ分からんでしょ
やろうと思えばModel内で加工することもできるし
0151nobodyさん
2010/04/06(火) 18:16:24ID:???ご助言ありがとうございます。
saveの返値は1でしたので成功しているようです。
が、やはりデータベースにINSERTされていないようです。
念のため、save後、debug($this->JimushoMaster->invalidFields());
してみましたが空っぽなのでバリデートの失敗ではないようです。
レールから脱線しますが、
$this->JimushoMaster->query('INSERT INTO jimusho_masters (name) VALUES (\''.$this->data['jimusho_master']['name'].'\');');
のように無理やりSQLを指定して実行すると問題なくINSERTされました。
うーん、ナニが悪いんでしょう。ケーキ食べ始めなのでわからんす。
0152nobodyさん
2010/04/06(火) 21:06:46ID:???期待通りの動きをしないときはとにかくdebug()をあちこちにぶっ差して
どういうデータが来てるか見る。あとdebugモード2の時のSQLダンプをよく読むのがいいです。
0153nobodyさん
2010/04/07(水) 02:07:26ID:???0154nobodyさん
2010/04/07(水) 10:12:26ID:???ん?ということは、リダイレクトしているということ?
だったら、発行されたSQLとか見て原因探ればいいんじゃない?debugは2にしてるよね?
Insertされないというのをもうちょっと具体的に書いてみてちょ
0155151
2010/04/07(水) 16:13:32ID:???説明も下手ですね。
if( $this->JimushoMaster->save($this->data) ){
$this->redirect('/jimusho_masters');
}else{
debug($this->JimushoMaster->invalidFields());
}
現在のコードはこんな感じです。
実行すると、レコードが追加されずに/jimusho_mastersにリダイレクトします。
saveは成功したという結果が返っているんですが、
レコードは増えていない画面に戻ります。
Validateが失敗していれば、エラーがでるはずですが
なにも表示されないのでエラーではないようです。
デバッグモードで画面下にクエリが出るんですが
そこにはINSERT文がないので、saveを呼び出しても
INSERTクエリが実行されてないようです。
0156nobodyさん
2010/04/07(水) 17:24:09ID:???読み返してみた。
第一引数はモデル名じゃなかったかな?
echo $form->create();
or
echo $form->create('JimushoMaster');
にしてみてどう?
0157151
2010/04/07(水) 17:41:43ID:???なおりました!ありがとうございます!
なるほど、$formヘルパでcreateするときにモデル名を
指定するんですね。やっと解決できました。
ご助言ありがとうございます!
0159nobodyさん
2010/04/09(金) 01:42:43ID:???1〜0までの数字を使ってる人いる?
1を押したときにShift押さなくても!が出るようにしてない人て
頭おかしいよね
0160nobodyさん
2010/04/09(金) 04:23:45ID:???追加・更新・削除できるものでお勧めあったら教えてください
MediaPluginは更新が出来なかった
0161nobodyさん
2010/04/09(金) 09:54:40ID:???うん。頭おかしいと思う。
>>160
Mediaplugin更新できるでしょ。
ファイルアップロード系は導入するのが面倒で複雑だけど、
がんばってMediapluginを使うようにした方がいい。
自作するよりスピーディーだし、かなりうまく設計されていると思う。
そのレベルの話なら公式で聞いてみたらどうでしょ。
0163nobodyさん
2010/04/10(土) 00:06:40ID:XPBwMnMWどうやればいいですか?
0164nobodyさん
2010/04/10(土) 00:09:03ID:???setするんですね
失礼しました
0165nobodyさん
2010/04/10(土) 14:31:33ID:???http://gimpo.2ch.net/test/read.cgi/nendai/1269784099/
0166nobodyさん
2010/04/11(日) 21:25:47ID:???http://www.facebook.com/
このfacebookのindexページのように、ログイン画面と登録画面をindexに置きたいです。
Authだと、Auth用のusersコントローラを独立して作らないといけない? みたいなのですが、
自分の目的にはAuthを使えるでしょうか?
FaceControllers内
function index, functon edit, function add. function login, function logout,
などと、ひとつのコントローラに納めないとできないのではないかと思ったりして悩んでおります。
たぶん大きな勘違いかと思うのですが、どういうイメージでAuthを使えばよいのでしょうか?
0167nobodyさん
2010/04/11(日) 21:46:51ID:???0169nobodyさん
2010/04/12(月) 11:19:42ID:???Cannot modify header information - headers already sent by
というエラーが出てしまいます。
調べたところ、
<?php ?>の上下の改行をなくす、php.iniでoutput_bufferingをonにする。
などの解決方法がありますが、試しても上手く行きませんでした。
layoutもデフォルトなのでheaderの部分を別個書いた記憶もなく、
ほとほと困り果てました。
なにかほかに解決方法はないものでしょうか?
0171nobodyさん
2010/04/13(火) 05:20:46ID:4rbnTecY動的にヘルパーを読むにはどうしたらいいですか?
0172nobodyさん
2010/04/13(火) 13:09:50ID:???普通にの場合も読んでおけばいいと思うけど、どうしても携帯の時だけというのなら
app::importとかでいいんじゃない?
0173nobodyさん
2010/04/13(火) 13:10:31ID:???普通にPCの場合も読んでおけばいいと思うけど、どうしても携帯の時だけというのなら
app::importとかでいいんじゃない?
0174nobodyさん
2010/04/13(火) 14:41:15ID:???http://bakery.cakephp.org/articles/view/cakephp-1-3-0-rc4-has-arisen
0175nobodyさん
2010/04/13(火) 14:41:46ID:???とあるので、すたぶるが来る日も近そうです
0176nobodyさん
2010/04/13(火) 15:19:57ID:???0177nobodyさん
2010/04/13(火) 16:35:06ID:???0178nobodyさん
2010/04/13(火) 16:40:10ID:???0179nobodyさん
2010/04/13(火) 16:55:01ID:???でも、それって、1.1でも1.2でも穴空いてたような
0180nobodyさん
2010/04/14(水) 00:09:32ID:???昨日の夜に見たときは、なかったんだけどな…日付改竄?キャッシュ?
>>175
このペースでいけば4月26日かな?
0181180
2010/04/14(水) 00:12:06ID:???スレ汚しスマン
0182169
2010/04/14(水) 09:53:38ID:???どうもありがとうございます。
なぜかmodelフォルダのファイルを作成し直したら直りました。
おそらく、ファイルの文字コード関係が怪しいと思ったのですが、結局原因は特定できず。。
ちなみに、Authコンポーネントを使う時は、
pages_controller, users_controller
などと、別途usersのコントローラを作成しますが、
これはわかりやすくするために分けるだけで、一つのコントローラに統合することも可能
ということでしょうか?
0183nobodyさん
2010/04/14(水) 10:08:05ID:???ファイル末尾の ?> を削除するところから始めたら良いことあるかもね
Authについては、まず、Userモデルを使って何か動かしてみれば良いんじゃないかな?
手を動かしたほうが早く身につくよ
0184169
2010/04/14(水) 10:18:49ID:???レスありがとうございます!
末尾の ?>も排除したりいろいろしたのですが、結局上手くいきませんでした。。
どうもDOM付エンコードとかそっち系かなとにらんでおります。
Authは実際に動かしているのですが、usersコントローラのものを
pagesコントローラに少しずつ動かしても結構動くので、もしかして
全部移動できるかな? と思ったのです。
0185nobodyさん
2010/04/14(水) 10:29:59ID:???そりゃ動く
でも、意味がない
しかもよりによってPagesControllerだと、何のため?ってことになるし、単にメンテがしにくくなるだけのような気が
今後もCakePHPを使っていくつもりなら、CakePHPの思想に従ってみたらどうか
0187nobodyさん
2010/04/14(水) 12:56:22ID:???入力時にkeywordsテーブルの name フィールドをチェックしたいです。
class Keyword extends AppModel {
public $validate = array(
"name" => VALID_NOT_EMPTY,
);
}
しかし、viewでは
$form->input('Keyword.0.name');
上記のように配列仕様の入力なので、validateが上手くいきません。
$form->input('Keyword.name'); と書けば動くのですが。
上手い方法はないものでしょうか?
0189nobodyさん
2010/04/15(木) 00:04:30ID:???はるか昔smarty使ってたこととか、デザイナーにphpいじらせたくないこととか考えると
smarty組み込みたいんだけど、ヘルパーの引数に配列が渡せなくて詰んだ。
参考サイトは山ほど見たんだけど、$this->aa('key1','value1') で配列生成できているところまでは確認したけど
ヘルパー引数にほりこんでもヘルパーが動かない。。。
0190nobodyさん
2010/04/15(木) 09:53:08ID:???ここは見た?
http://d.hatena.ne.jp/am11op/20070614/1181837256
個人的にはSmartyなぞ必要ないと思っているが、使いたいヤツがいるのでしかたなく...
0192nobodyさん
2010/04/15(木) 10:39:21ID:???view で使う程度のphpなら直接デザイナーに教えた方がいいと思うが。
smarty なんて 今の時代に cgi 使ってプログラムやってるようなもん。
0195nobodyさん
2010/04/16(金) 16:41:46ID:???さわらせている人っているのん?
0196nobodyさん
2010/04/16(金) 17:00:25ID:???やったことないけど
0197nobodyさん
2010/04/16(金) 17:10:39ID:???言えばいいだけでは?
一人で全部まかなってるフリーの立場からしたらプログラマとデザイナがそれぞれ
自分の仕事だけやってればいいなんてうらやましい。だからもっと話して
連携すりゃいいのにと思うなぁ。
0198nobodyさん
2010/04/16(金) 17:14:40ID:???アーティスティックなのを請け負うと、デザイナ必要になるよね
大抵、ループを説明するより自分でいじったほうが速い
0199nobodyさん
2010/04/16(金) 17:23:20ID:???見た目だけじゃなくて、機能を考えたら
例えばリストにするよりか、プルダウンにしたほうがいい
なんてことになって、それならAJAXつかっちゃおうとかに
なったりしたら、デザインもプログラムもいろいろ
いじるところが出てくるな
となるとどっちを主導でいくかってところで難しくなるのか
なるほどなるほど。
それならいっそう話し合いをして連携しないといけないと思うけど
そういう仕事ってディレクターとかコーディネーターみたいなのが
間にいるもんなんじゃないの?
自分で勝手にいじったらいろいろややこしくなるような気がする。
0200nobodyさん
2010/04/16(金) 19:01:38ID:???0201nobodyさん
2010/04/17(土) 00:35:56ID:???0202nobodyさん
2010/04/17(土) 00:55:04ID:???0203nobodyさん
2010/04/17(土) 12:57:20ID:???そういうことか。
本心では「政治なんて誰がやっても同じ」と思ってるから、
政治家になれとは言わない。
それと同じようにWebのディレクティングも誰がやっても同じだから・・・。
0204189
2010/04/17(土) 13:52:28ID:???>>190 さんの紹介してくれてる記事はもちろん試していて、
$this->aa()でview内でarray生成はできるけど(自作関数内var_dumpで確認)、helper内だとうまく渡せないんです
議論がされてますが、デザイナーにPHP触らせたくないというのが理由です。
こちらデザインは素人レベルでシステムのみ対応しているため、発注元にデザイナーを別途雇ってもらうケースが多いのですが
そのときにコードぐちゃぐちゃにされて「動かないからなんとかしてくれ」となるのが面倒なんですよ
(自作の各種パッケージをちょっとカスタマイズして売る、というやり方を副業でやっているので・・・)
あとはクライアントがsmarty指定するケースも多いです
もう少し軌道に乗ったら、提携デザイナーさんを何人か探して、
その人達を紹介するやり方にかえようと思います。
そんなわけで、1.3からはPHPコードべた書きでいこうと思います。
0205nobodyさん
2010/04/19(月) 16:55:28ID:WgJ57/BKCake is NOT able to connect to the database.
と言われましたが、当面はDBを使いません。
このメッセージが出ないようにするにはどうすればいいのでしょうか?
0206nobodyさん
2010/04/19(月) 19:56:16ID:???http://www.google.co.jp/search?hl=ja&rlz=1B3GGGL_jaJP283JP283&q=cakephp+%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%80%80%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84&lr=&aq=f&aqi=&aql=&oq=&gs_rfai=
0207nobodyさん
2010/04/19(月) 22:23:19ID:faTvhF7k1.あるテーブルの内容を一覧で表示。(各行にはチェックボックスがある)
2.一覧のチェックボックスにチェックが付いているものを、submitした時、別画面の一覧に表示させたい。
2番の処理をどのようにしたら良いでしょうか?
0208151
2010/04/19(月) 22:37:03ID:???0209nobodyさん
2010/04/19(月) 23:48:06ID:faTvhF7k返信ありがとうございます。
具体的なコードを書いてくれるとありがたいです。
質問内容が抽象的で申し訳ないのですが…
初心者ということで勘弁してください。
0210nobodyさん
2010/04/20(火) 01:53:35ID:???0211nobodyさん
2010/04/20(火) 03:02:03ID:???0212nobodyさん
2010/04/20(火) 11:21:01ID:???0213nobodyさん
2010/04/20(火) 23:34:34ID:???これテストにデルから覚えておくように
0214nobodyさん
2010/04/21(水) 01:33:25ID:???優しい俺が優しく解説致します。
2番の処理を、CakePHPとは関係なくあなたのお使いの言語環境(おそらくPHP)を使って
どのように実現するのか、考えてみれば自ずと分かります。
Cakeで楽になる部分はあっても、素のPHPで(自分のスキル的に)いかんともしがたい部分を
Cakeが良きに計らってくれるというわけでは、必ずしもありません。
季節の変わり目、まだまだ寒い日もあるかと思いますので、ご自愛下さい。
0215nobodyさん
2010/04/21(水) 14:44:22ID:???0216nobodyさん
2010/04/21(水) 14:49:53ID:???いきなりcakeから入るより結果的にはそのほうがはやく覚えられると思うし
っていうかPHPなんかちゃんと勉強すれば2日か3日ぐらいでだいたい把握
できるんだからそれを省略すんなよと…
0217nobodyさん
2010/04/21(水) 21:06:23ID:???PHP学習しても理解できないとか知的障害レベル
0218nobodyさん
2010/04/21(水) 21:14:37ID:???知的障害とかアホか
0219nobodyさん
2010/04/21(水) 21:34:45ID:???0220nobodyさん
2010/04/21(水) 21:42:26ID:???0221nobodyさん
2010/04/22(木) 12:04:30ID:???0222nobodyさん
2010/04/22(木) 18:04:46ID:???もう見てないだろうけど
DBから一覧を取得したと時に各ユーザー(例えばね)のIDも取得してると思うけど
多分、find('all')で取得でforeachだよね?
<? e($form->checkbox('Model.name.id'))?>
submitで来たあとは1が入ってる人を一覧費だけじゃないかな
0223nobodyさん
2010/04/23(金) 04:16:55ID:???自己満足のためだけに発言する自分の卑しさを省みてみなよ。
ひとまずPHPの基本的な本を読んだほうがいい感じだけどね。
他の言語も含めて経験が無ければいきなりフレームワークはやめたほうがいい。
0224nobodyさん
2010/04/23(金) 14:42:23ID:???http://bakery.cakephp.org/articles/view/cakephp-1-2-7-released
0225nobodyさん
2010/04/23(金) 15:32:11ID:IhQ26v2DこういったアプリにはCakePHPは向かないですか?
簡単に言うと、CMSのカスタムフィールドを拡張したようなイメージで、
データの入力タイプ(フォームの種類、バリデーションのルール)を用意しておいて、
ユーザーの入力に応じて、動的に表示するフォーム・バリデーションやアプリの挙動を切り変えます。
素で作るとすると、データ用の基底クラスを作って、入力タイプごとに派生クラスを作っていく感じになると思います。
こういった独自のクラスをCakePHPのMVCに組み込むのが難しそうな感じがしているのですが、
CakePHPの場合、どうやるのがいいんでしょう?
それとも他のフレームワークを使ったほうがいいですかね?
0227nobodyさん
2010/04/23(金) 16:18:29ID:???モデルのバリデーション機能を利用しようと思っていますが、使い切りのジェネレーターのようなものなので、
今の所、フォームから入力されたデータはセッションに保存する予定です。
ですので、テーブルも作りません。
ただ、後々ユーザーの設定(フォームの組み合わせ)をDBに保存する予定があります。
が、これは動的なフォームを生成・切り替えさえできれば、設定だけ保存しておけば済むのであまり問題ないかと思ってます。
問題はデータ構造の切り替えをどうするか、です…。
例をあげると、
1) ユーザーがドロップダウンリストから「データパターン1」「データパターン2」などを1つ選んでサブミット
2) 画面遷移後、選択したタイプによって、フォームを表示。ユーザーが入力してサブミット。
「データパターン1」の場合は「ドロップダウンリスト」を表示
「データパターン2」の場合は「テキストフィールド」を表示
など
3) データパターンの種類に応じたバリデーションを行う。
バリデショーンは動的に切り替えられそうなので問題ないのですが、
データ構造をもたせたクラスをどう組み込むかで、CakePHPでどうやるのがよいのか悩んでます…。
0228nobodyさん
2010/04/23(金) 16:25:09ID:???各項目を操作していく感じになります。
パターン1 = テキスト + ドロップダウンリスト
パターン2 = テキスト + ラジオボタン
など
DataModel(extends AppModel)などを作り、TextDataModel(extends DataModel)などを作ればよいのかな、
(その他、DataModelの組み合わせを扱うモデルクラスなど)
と思いつつ、CakePHPではかえって複雑になってしまう気がして悩んでます。
0229nobodyさん
2010/04/23(金) 16:28:36ID:???うーん。イメージがいまいち掴めない
最終的に保存する例を教えてくれ
あと、セッションに保存したデータはどうするの?そのあと
0230nobodyさん
2010/04/23(金) 16:29:11ID:???0231nobodyさん
2010/04/23(金) 16:41:57ID:???フォームに入力したデータそのものは保存しないです。
入力されたデータを計算し、最終的に結果を画面に表示(またファイルにしてダウンロードしてもらう)だけですので。
後々データを保存する場合も、セッションをハッシュ化してそのまま保存しようと考えてます。
計算を行う際(と後々データからフォームを復元する際)に、フォームの種類を「走査」する部分をどうするか、が悩んでいる部分です。
極端な話、モデルを一つだけ作って、その中で
switch($form_type) {
case 'text':
...
case 'checkbox':
...
}
などとし、バリデーションなどだけ動的に切り替えてもいいのですが、
やはり、柔軟性を高めるためにもデータの種類ごとにクラス化したいと思ってます。
似たようなアプリがあれば説明しやすいのですが、なかなか見つからないもので、、、すみません・・・
0232nobodyさん
2010/04/23(金) 16:46:50ID:???ttp://onlineform.jp/gen/form?template=inquiry&type=1&color=black
0233nobodyさん
2010/04/23(金) 16:51:23ID:???外してるかもしれんが自分なら
モデルはひとつ
データに応じてバリデーションを切り替える
種類の識別は、種類を格納したデータを持っておいても良いし、フィールド名(擬似的なフィールド名)で識別しても良い
って感じ。
柔軟性を高めるというのが何を意味しているのかはちょっと分かんなかった
0234nobodyさん
2010/04/23(金) 17:01:52ID:???なるほど。
データの種類ごとにクラス化すれば、処理を委譲できるのでそちらのほうが楽かな、と思ったのですが、
やはり、CakePHPを使う場合はベタな書き方のほうがいいのかな。
もうちょっと色々調べてみます m__m
0235nobodyさん
2010/04/23(金) 17:19:44ID:???クラスにしてもモデルにしてもいいんだけど、
結局データの種類に応じて読み込むんだろうから、一緒かと
あと、バリデーションだけなら、外出しするほどではないんじゃないかと想像
0236nobodyさん
2010/04/23(金) 17:22:17ID:???ttp://bakery.cakephp.org/articles/view/inheritable-behavior-missing-link-of-cake-model
ただ、やはりCakePHPで想定されている使い方ではないようですね…
モデル自体を自力で実装という手もありますが、少し凝ったことをしようとすると難易度が極端にあがる、
ということだけはわかりました…。
0237nobodyさん
2010/04/23(金) 17:42:54ID:???0238nobodyさん
2010/04/23(金) 18:27:26ID:aAazCR87どこが間違っているのでしょうか?
if( !$list = Cache::read('user_list') ) {
$list = $this->Index->getUserList();
Cache::set(array('duration'=> '+5 minutes'));
Cache::write('user_list',$list);
}
キャッシュ時間は
Cache::setで設定しろといろいろなサイトには書いてあるのですが、ここを記載しているとまったくキャッシュされていません。(正確にはキャッシュはされているが、Cache::readがfalseを返す)
ここをコメントアウトするとキャッシュされています。
ご教示お願いいたします。
0239nobodyさん
2010/04/24(土) 10:57:06ID:???sageてね
Cache::readの前にもCache::setが必要だと思う
が、解決するかは分からない
0240nobodyさん
2010/04/24(土) 11:13:01ID:???OOPを活かした書き方をしているものは皆無ですね
Javaちっくな書き方をするには、
やはり、フレームワークの縛りが強すぎるのだろうか
もし、なにかよいサンプルがあれば教えてください
0241nobodyさん
2010/04/24(土) 12:04:17ID:???CakePHPはphp4対応だから無理がある
0242nobodyさん
2010/04/24(土) 12:43:41ID:???継承しすぎて無意味に複雑になってしまうこともあるし。
自分1人でやってるならいいんだけど、多人数でやるなら分かりやすさを優先すべし。
0243nobodyさん
2010/04/24(土) 13:31:06ID:???まぁもうしばらく使ってみます
それとは別に、
へぇ、これもCakePHP製なの?というものがあったら紹介してもらえるとうれしいかも
製作例はいろいろ探してみたけど、全て同じようなものばかりですね…
0244nobodyさん
2010/04/24(土) 15:22:02ID:???でも>>243くんが何を持ってCakePHPっぽいと思っているか知らんから何とも言えないけど
0245nobodyさん
2010/04/24(土) 15:54:11ID:???それはどこでしょう?
色々参考になるかと思ってソース見てるんだけど、どれも似たような感じなので…
フレームワークなんで、当然といえば当然かもしれないけど、ちょっとおもしろみがないなと
0246nobodyさん
2010/04/24(土) 17:20:13ID:???俺ならそういうときはJAVAかrubyでやる
PHPのOOPはいろいろアレすぎて面倒
0247nobodyさん
2010/04/24(土) 18:08:57ID:???みんな最初っから cache 使ってプログラム組んでる?
サーバーに負荷がかかりまくってやべーなと思ったら cache を使うって方が効率がいいと思うけど。
0248nobodyさん
2010/04/24(土) 19:52:17ID:???0249nobodyさん
2010/04/25(日) 05:28:46ID:???ユーザー入力に応じて柔軟に機能を切り替えたいから。拡張も楽だし。
LimuSurveyというのがCakePHPが使われてるらしいと思って見たけど、
中身はCakePHPではなかった。
ttp://www.limesurvey.org/en/demo
デモを見たら、これがCakePHPならすげえや、と思ったけど、
やはりこういうのは難しいんだろうね。というか、ソースがごちゃごちゃになりそう。
0250nobodyさん
2010/04/25(日) 09:49:57ID:???難しいこともないしソースがごちゃごちゃになることもないが、きみがCakePHPをdisってるつもりがないなら、比較スレにいった方が良い
symfonyやRuby on Rails やDjangoなど、他にも優秀なFWはいっぱいあるから
あったものを選べば良いんじゃないかな
0251nobodyさん
2010/04/25(日) 15:27:11ID:???ガイドブック(1.1)にはMyISAMで作られてたし、SQL文見ても外部キーのことは書いてなかったし・・・
激しく即出な気が・・・
0252nobodyさん
2010/04/25(日) 15:35:18ID:???http://bakery.cakephp.org/articles/view/announcing-cakephp-1-3-0-stable
すたぶるキタ━━━━━━(゚∀゚)━━━━━━ !!
0253nobodyさん
2010/04/25(日) 15:38:43ID:???わかりやすく表形式とかで。
0254nobodyさん
2010/04/25(日) 16:22:54ID:???0256nobodyさん
2010/04/25(日) 18:26:09ID:???0258nobodyさん
2010/04/26(月) 03:52:40ID:???0259nobodyさん
2010/04/26(月) 04:34:23ID:???AOP的なのの使い所や命名なんかにルールを持たせとけば
ゆるくても品質はそんな下がったりせんけどな。
むしろPHPは言語サポートが少なすぎて厳密にやろうとすると疲れる。
0260nobodyさん
2010/04/26(月) 04:42:12ID:???0262nobodyさん
2010/04/26(月) 12:20:51ID:???1 $writedata
2 $write_data
3 $WriteData
4 $writeData
どれがcakephp流の規約でしょうか。
0263nobodyさん
2010/04/26(月) 12:27:17ID:???変数名が使われるケースはFormHelper::input()くらいかもだけど
$write_data
だね
もっと一般的な例で言うと
$admin_users
0265nobodyさん
2010/04/27(火) 09:35:18ID:???--
993 nobodyさん sage 2010/03/18(木) 08:05:51
1.3になってlibsってフォルダが増えたけど、
ここには何をいれるの?
vendorsとの違いは何??
--
ttp://mark-story.com/posts/view/using-custom-route-classes-in-cakephp
で、CakeRoute クラスを上書きする記事が出てるけど、そのなかに
App::import('Lib', 'routes/SlugRoute');
ってあったから、こんな感じの使い方じゃないかな?
(vendorsはCakePHP関係ないファイルを入れるところ)
0266Beginner
2010/04/27(火) 23:53:24ID:M6fZ8Sga以下の場合、逆ルーティングが出来ません。
処理の流れとしては、一覧画面→編集画面→確認画面→(登録完了)→一覧画面
という画面遷移になります。
routes.php
Router::connect(
'/systemFaqCategories/:faq_category_id/edit/*',
array(
'controller' => 'faq_categories',
'action' => 'systemFaqCategoryEdit'
),
array(
'faq_category_id' => '[0-9]+'
)
);
0267Beginner
2010/04/27(火) 23:54:09ID:M6fZ8Sga//編集画面
function systemFaqCategoryEdit(){
debug('Called systemFaqCategoryEdit');
pr($this->params);
$this->editFaqCategory('systemFaqCategoryEdit',
array(
'class_information_id' => FAQ_CATEGORY_TYPE_SYSTEM,
'faq_category_id' => $this->params['faq_category_id']
)
);
}
0268Beginner
2010/04/27(火) 23:55:19ID:M6fZ8Sgaprivate function editFaqCategory($actionName, $condition) {
if ($condition['class_information_id'] == FAQ_CATEGORY_TYPE_SYSTEM) {
// 編集画面 確認ボタン
if (!empty($_POST['confirmation']) && $_POST['confirmation']) {
$this->editConfirmation();
return;
}
// 確認画面 戻るボタン
if (!empty($_POST['return']) && $_POST['return']) {
$this->editReturn();
return;
}
// 確認画面 登録ボタン
if (!empty($_POST['save']) && $_POST['save']) {
$this->editSave();
return;
}
if($sId <> '') {
$getFields = array('id', 'class_information_id', 'category_title', 'regist_id', 'update_id', 'created' ,'modified');
$this->data = $this->FaqCategory->read($getFields, $sId);
$this->render('edit');
}
}
}
0269Beginner
2010/04/27(火) 23:57:37ID:M6fZ8Sga<?php
$confirmButton = array(
'controller' => 'faq_categories',
'action' => 'systemFaqCategoryEdit',
'faq_category_id' => $this->params['faq_category_id']
);
e($form->create('FaqCategory',
array('url'=>$confirmButton)));
e($form->submit('確認', array('name' => 'confirmation', 'div' => false, 'tabindex'=>1)));
?>
以下
入力inputのHTML
確認画面へ遷移した時に、ルーティングがきいていない。
URLがコントローラ名+アクション名になってしまう。
解決策をお持ちの方は教えてください。
長い文章になってしまったのはご了承ください。
0270nobodyさん
2010/04/28(水) 06:20:11ID:???あとバージョンを書いて
んでRouter::URL()でリバースルーティングできるかを教えて
0271nobodyさん
2010/04/28(水) 16:53:38ID:???モデルのsaveでNULLを入れたいときはどうしたらよいでしょうか?
OrderというモデルのpriceをNULLにしたかったので
$this->data['Order']['price'] = null;
とか
$this->data['Order']['price'] = '';
してから
$this->Order->save($this->data);
したのですが、DBには0という値が入ってしまいます。
もちろん、DB側ではNULL化というテーブル定義にしています。
0272nobodyさん
2010/04/28(水) 17:02:58ID:???今、適当な練習用サンプルを作っています。
利用するデータの編集をscaffoldを利用して作成しました。(Viewのみ多少修正)
しかし、削除のパスもリンクで表現されているので、(/hoge/delete/1 のように)
クローラーが巡回してきたらすべてのデータが消える気がします。
このデータは特に秘密にしたいようなものではなく、むしろ利用者で好き勝手に編集して問題がないので、セッション管理は行っていません。
セッション管理などしてない場所でscaffoldを利用するというのは想定外なのでしょうか。
現在はセッションを利用して対策する方向で修正していこうと考えていますが、
「何らかの対応方法がcakephpに用意されている」もしくは「もっと単純な対応策がある」
といった情報がありましたらぜひ教えてください。
0273272
2010/04/28(水) 17:04:13ID:???1.3を利用していますが、他のバージョンに変更も可能です。
0274nobodyさん
2010/04/28(水) 17:57:45ID:???普通に保存できると思う。少なくとも自分はできてる。
DB側のデフォルト値をNULLにしとけば間違いないはず。
CakePHPはNULL使わないほうがよいみたい。
バリデーションもnullの扱いがおかしすぎる。
0275nobodyさん
2010/04/28(水) 18:00:09ID:???0276nobodyさん
2010/04/28(水) 18:19:37ID:???返答ありがとうございます。
既存のレコードに大して実行すると、
ななんと「0000-00-00 00:00:00」という値が入ってしまいます。
これってバグ?なんですかねー。
明示的にNULLにUPDATEするためにはSQL書かないとだめなのかなぁ。
0277Beginner
2010/04/28(水) 21:54:40ID:???返事遅くなりまして申し訳ないです。
バージョンは、1.2.6です。
Router::URL()で逆ルーティングできました。
$url = Router::url(array(
'controller' => 'faq_categories',
'action' => 'systemFaqCategoryEdit',
'faq_category_id' => $this->params['faq_category_id']
)
)
e($form->create('FaqCategory',
array('url'=>$url)));
にすると、
<form id="FaqCategoryEditForm" method="post" action="/xxxx/xxxx/xxxx/xxxxx/systemFaqCategories/1/edit/">
変なURLが生成(先頭の/xxxx/xxxx/が余計)されてしまう。
0278nobodyさん
2010/04/29(木) 03:12:33ID:???nullはバリデーションのrequiredではじかれるが、allowEmptyではすり抜ける。
>>276
一部だけ更新したい場合は、事前に関係ないフィールドをunsetなどしておいたほうが安心。
特にループ中で保存する場合は思わぬデータが更新される場合がある。
コントローラーからなら、$dataに更新データが入っているとしたら、
$this->Model->create(null);
$this->Model->set($data);
if ($this->validate()) {
}
0279nobodyさん
2010/04/29(木) 03:17:58ID:???$dataに更新用のデータが入っているとしたら、下のようにするくせをつけておいたほうが安心。
// 更新する場合はキーを指定
// $data[$this->Model->alias][$this->Model->primaryKey] = 更新するレコードのID;
// $dataにフォームから受け取ったデータなどを設定。
$this->Model->create(null); // モデルのデータを初期化。 nullにしないとDBのデフォルト値が入る。
$this->Model->set($data); // モデルにデータをセット。create()しておかないと、前回のデータとマージされる。
if ($this->validate()) {
$this->Model->save($this->data, false);
}
0280nobodyさん
2010/04/29(木) 03:24:05ID:???f ($this->Model->validate()) {
だった。上記のようにしたらnullもいけないかな?
だめならDB側のデフォルト値をnullにしておいて、
unset($data[$this->Model->alias]['created']);
$this->create($data); // データがないフィールドはデフォルト値を使うようにする。
$this->set($data);
...以下同じ...
とかしてみたらどうだろう?
0281nobodyさん
2010/04/29(木) 03:27:26ID:???$this->Model->create($data); // データがないフィールドはデフォルト値を使うようにする。
$this->Model->set($data);
だ。
create()の中でset()と同じことされるからset()はいらないかもしれない。
0282nobodyさん
2010/04/29(木) 04:17:14ID:???create()は主キーもリセットされてしまいます
ですから、この場合のset()は必須です
NULLを使わない設計ができるのであれば、それに越したことはないです
0283nobodyさん
2010/04/29(木) 09:41:42ID:???解決方法は↓いずれか
1. Router::url($url ,true) をformのurlに指定する(第2引数でフルURL)
2. (アクセスしたURLと同じ場合)$this->here
3. $form->createに渡すURL配列に 'id' => "" を含める
3.は前スレだかに書いてあったやつだが試してない。ぜひ試してもらって結果教えて欲しい
0284nobodyさん
2010/04/29(木) 09:45:53ID:???NULLはbeforeSaveでセットする
↓を参考に工夫すると良い
http://bakery.cakephp.org/articles/view/null-behavior
ttp://d.hatena.ne.jp/kusakari/20070730/1185765186
0285nobodyさん
2010/04/29(木) 10:55:21ID:???どうしてもNULLを使いたいなら、ここまでに出た方法のどれかで凌ぐしかない
0286nobodyさん
2010/04/29(木) 11:12:30ID:???0287nobodyさん
2010/04/29(木) 18:11:37ID:???ランダムに1件レコードを取り出そうとして
$this->hoge->find('first', array(order'=> 'rand()')); はうまくいったのですが、
$this->hoge->find('first', array(order'=> 'rand(100)')); のようなシードを指定しての取り出しができません。
発行されているクエリは
SELECT …… ORDER BY rand(`100`) ASC LIMIT 1
のようになっており、エスケープされてしまっているようです。
エスケープさせない方法、または、シードを固定してのランダム取り出しの方法はないでしょうか?
0288287
2010/04/29(木) 22:54:24ID:???$this->hoge->find('first', array(order'=> 'rand((100))'));
としてrandにカッコを二つ続けて入れることで、置換対象から外しました。
queryのプレースホルダ的な感じでやりたいので、正当なやり方があったらぜひお教え願います。
0289nobodyさん
2010/04/30(金) 06:43:52ID:???$this->hoge->fing('first', array(
'order by rand(?)' => 100
));
でできない?
conditionsではプレースホルダ使えるけど、orderはできないかな?
試してないのでわからんが
0290nobodyさん
2010/04/30(金) 09:04:17ID:???以前議論あったがscaffoldはそういうものっていう結論に落ち着いてた
bakeして、それを書き換えてあげるしかない
0291nobodyさん
2010/04/30(金) 12:13:53ID:???ありがとうございます。
scaffoldはそういうものということで納得します。
bakeして書き換えも試してみようと思います。
0292nobodyさん
2010/04/30(金) 15:27:09ID:???0293nobodyさん
2010/04/30(金) 15:39:48ID:???0294nobodyさん
2010/04/30(金) 16:13:16ID:???0295nobodyさん
2010/04/30(金) 16:19:20ID:???cakebookのHABTMを保存の項がリンクおかしくなってるし。
0297nobodyさん
2010/04/30(金) 17:47:47ID:???viewの書き方はあるでしょうか?
validateでalphanumericをすると、事後的にチェックはできるのですが、
そもそも入力した時点で半角しか入力できないようにしたいのです。
formのtypeをpasswordにしたらそのような設定になるようですが、
textで見えている状態で強制的に半角入力にする方法を探しています。
0298nobodyさん
2010/04/30(金) 18:22:22ID:???ってことはアプリ側のロジックでなくて、ブラウザ側の話になるんでは?
スレ違いだけど、CSSのime-modeとかある、
0300nobodyさん
2010/04/30(金) 19:23:09ID:???ありがとうございます!
ブラウザ側から処理するcakeの機能がないかなと調べていました。
ぐぐって調べてみます!
0301nobodyさん
2010/05/01(土) 00:30:06ID:???Media プラグインはなんか扱いにくそうだし。
画像のURLとアクション呼び出すURLの仕組みの違いもわからんし…
0302nobodyさん
2010/05/01(土) 03:01:43ID:???横レスだが、俺は今更ながら本家RoRに浮気してみてるところ。
Cakeに対して理解をもってから望んだら、おもしろいくらいRoRがさっくり理解出来そうだったので。
で、CakeにあったDRYじゃない感やなんかがRoR(というかRuby)で解消されるならあっちに旅立つ予定。
やっぱCakeがいいやってなったらしれっと戻って来るw
0303nobodyさん
2010/05/01(土) 10:00:05ID:???興味深いからその後どうなったか教えてほしい
俺はRoRを使えるような場に恵まれないため今のとこ利用しないが。
0304nobodyさん
2010/05/01(土) 12:19:40ID:???0305nobodyさん
2010/05/01(土) 12:23:27ID:???0306nobodyさん
2010/05/01(土) 12:32:45ID:???0307nobodyさん
2010/05/01(土) 12:33:01ID:???0308nobodyさん
2010/05/01(土) 17:27:41ID:???layoutのdefault.ctpとか、1.2だと
$session->flash
になってるんだけど、1.3だと
$this->Session->flash
になってる。レイアウトを移行する時は要注意。
0309nobodyさん
2010/05/01(土) 17:43:56ID:???0310nobodyさん
2010/05/01(土) 18:05:55ID:???違う、$this-> は推奨だけど無しでも動く
echoが必要になった
echo $this->Session->flush();
0312nobodyさん
2010/05/01(土) 18:13:00ID:???本当だ。移行ガイドにも書いてあった。ありがとう。
移行ガイド、斜め読み程度で良いと思ってたけど、しっかり読もう。。。
0313nobodyさん
2010/05/02(日) 20:40:40ID:???CakePHPっていうのが人気なんでしょうか。
NetBeansのプラグインにSymphonyっていうのとZendっていうのしかないんですけど
それでもCakePHPがいいですかねぇ?
0314nobodyさん
2010/05/02(日) 20:45:19ID:???0315nobodyさん
2010/05/03(月) 01:09:54ID:???プラグイン?なんだそれ、喰えるのか?
俺はPHPエディタの延長のつもりでNetBeansでCake焼いてるよ。
0316nobodyさん
2010/05/03(月) 01:28:15ID:???0318nobodyさん
2010/05/03(月) 13:05:07ID:???0319nobodyさん
2010/05/03(月) 13:17:52ID:???0320nobodyさん
2010/05/03(月) 13:43:59ID:???CakeOnVimを使ってるけれど、そこまで重要なファクターではないなあ
0321nobodyさん
2010/05/03(月) 13:53:06ID:???自動補完とか文法チェックもできるんだね
でも見た目がアレだから、慣れないとストレスたまりそう…
0322nobodyさん
2010/05/03(月) 14:15:21ID:???Railsのスクリーンキャストでよく見かけるTextMate的な補完や操作が出来る。
昔はEclipseとかZDEとか使ってたけど、PHPに限って言えばIDE不要。
手になじむエディタ(それが人によってemacsかvimか秀丸かEmEditorかTextMateかBBEditか変わるが)
があればむしろ小回りが効いて良い。動的言語で手練れになるなら絶対コッチ。
0323nobodyさん
2010/05/03(月) 22:42:04ID:???FTPやらバージョン管理やらしようと思えばIDEのほうが断然便利だな
関数の定義元も一瞬で表示されるし
0324nobodyさん
2010/05/03(月) 22:58:23ID:???0325nobodyさん
2010/05/03(月) 23:16:54ID:???0326nobodyさん
2010/05/04(火) 01:18:42ID:???0327nobodyさん
2010/05/04(火) 01:30:32ID:???一発で整形が出来るのが便利。
エディタでも出来るかもしれんがw
Xdebugとか要求してきてメンドイが
0328nobodyさん
2010/05/04(火) 18:50:23ID:???1.3使っているのですが、
Shellから
静的HTML吐きだしたいのです。
ctpとViewのrender使ってレンダリング結果を保存しようとしたのですが、
ViewTaskも使えず、
Controllerをnewしてrenderしてもエラーがでてしまいます。
どなたか対処法ご存じないでしょうか?
上記方法はぐぐってでてきたので試したのですがダメでした……。
0329nobodyさん
2010/05/04(火) 19:31:04ID:???html_cacheというafterRenderでhtmlファイルを生成するplugin を使ったほうが早いかも
shellじゃないとだめなの?その場合は必要なファイルをimportしてnewしてって面倒くさいと思うが、今どう書いているのか教えれ
0330nobodyさん
2010/05/04(火) 19:46:53ID:???おお、そんなプラグインが……。
調べてみます。ありがとうございます。
shellでやりたいのは定期実行で、
古い記事を静的ファイルに落とす処理なのです。
URL叩くのでも良いのですが、その他の処理はTaskになっているので出来れば一度にやりたいと……。
以下、全てShell内部でやってます。
1. 既存コントローラ new
// DebugKit がどうとかでてエラー
App::import('Controller', array('Posts'));
...
$controller = new PostsController();
$controller->components = array('Auth');
$controller->constructClasses();
$posts = $controller->__createStaticHtml();
2. 只のコントローラ new
// エラー
App::import('Core', 'Controller');
...
$this->controller = new Controller();
$content = $this->controller->render('archive' , '' , $filepath );
3. ViewTask
// エラーorz...
var $tasks = array('View');
...
$this->View->getContent('archive', $params);
0331nobodyさん
2010/05/05(水) 22:23:38ID:???せめてGET方式に簡単に切り替えられないもんかね?
paginatorヘルパーのオプションでクエリを指定すればそれっぽくはなるんだが、
ソート(order)指定していると、ページリンクでコロン付きのリンクが生成さえれてしまう…
0332nobodyさん
2010/05/05(水) 22:49:52ID:???ほんと、モデル名がURLに出る仕様はどうかと思うわ
自前でクエリのパラメータ名とModel::paginate()のオプションを相互変換する処理書いたが、
もうちょいうまいやり方はないものなのかねえ
0333nobodyさん
2010/05/06(木) 12:38:02ID:???0334nobodyさん
2010/05/06(木) 21:56:38ID:???ルータ使っても名前付きのパラメータついちゃうねえ
page:2 とか
ルータで細かく指定すれば逆ルーティングしてくれるの?
0335nobodyさん
2010/05/06(木) 22:07:24ID:???/sort:Table.created/direction:desc
とかなってる。
ルーティングだけで
/date/desc
みたいにできるもんなの?
できなくて自前で書いちゃったんだけど、細かく指定してできるんならそっち使うわ
0336nobodyさん
2010/05/06(木) 22:37:56ID:???Router::connect('/search/:page',
array('controller' => 'Product', 'action' => 'search')
);
とか書いたらいけたわ…
ソートのほうは、表示名変えるには一個づつ全部かかないと駄目そうだけど
(逆)ルーティングもだいぶ賢くなったんだなあ
0337nobodyさん
2010/05/06(木) 22:51:27ID:???Router::connect('/product/search/date/:direction/:page',
array('controller' => 'Product', 'action' => 'search', 'sort' => 'Product.created')
);
ソートキー分だけ全部書かないとだめそうだが、いけた
第3引数で数字のチェックとかすれば、これでいけそう
あなどってたわ・・・w
0338nobodyさん
2010/05/06(木) 23:20:16ID:???Router::connect('/product/search/price/:direction/:page',
array('controller' => 'Products', 'action' => 'search', 'sort' => 'Product.price')
);
こんな感じのルーティングで、Product.price がvirtualFieldsの場合、
ソートの方は $paginator->sort(...) で逆ルーティングしてくれるが、
$paginator->next(...) なんかは逆ルーティングできない
Router::connect('/product/search/price/:direction/:page',
array('controller' => 'Products', 'action' => 'search', 'sort' => 'price')
);
とか書いたら $paginator->next(...) のほうはうまくいったが、今度はソートのほうが逆ルーティングできない
両方書いてみたらぱっと見はうまくいくけど、ソートの昇降が切り替えられなくなった
バグだよね
0339nobodyさん
2010/05/06(木) 23:25:18ID:???virtualFieldsのsort()自体にバグがあるみたい
昇降切り替えができない
0340Beginner
2010/05/07(金) 00:00:52ID:???レス遅くなりました。
1,2の方法ではうまく行きました。
3の方法ではうまく動かなかったです。
絶対URLになってしまったのですが、問題ないのでしょうか?
<form id="FaqCategoryEditForm" method="post" action="http://xxxxx/systemFaqCategories/1/edit/">
今までは、相対URLでしたけど・・・
0341nobodyさん
2010/05/07(金) 02:13:33ID:???virtualFieldsだと、Controller::paginates()で$paging['options']['order']のモデル名が消えてしまう模様
そのせいかわからないがPaginator::sort()が切り替えられない(逆ルーティングはできる)
Paginator::prev()で逆ルーティングできないのもそのせいかもしれない
原因探してもよくわからないから、paginatorヘルパーのオプション['url']['sort']を明示的に指定するようにしたよ…
0342nobodyさん
2010/05/08(土) 01:28:35ID:???$this->A->B->create($this->data);
if ($this->A->B->validates()) {....
って感じでバリデーションを調べようとしていて
hasMany関連だから$this->date['B'][0]['field']の形式なんだけど
$this->date['B']{'field']っていうフォーマットってじゃなきゃ、バリデートしてくれないみたい
英語、日本語でググってみたけど、なかなか解決できない…
誰か知ってたら教えてくだせえ
0343nobodyさん
2010/05/08(土) 14:35:38ID:???下記のように書いてみましたが、Session->writeでエラーが出てしまいました。
コントローラに書いた場合、 authByHashは上手く機能するのですが。。
class User extends AppModel {
public $components = array("Session");
function authByHash($id = null){
$conditions = array("hash" => $id);
$user = $this->find($conditions);
$this->Session->write('Auth',$user);
if(!empty($user) ){
return true;
} else {
return false;
}
}
0344nobodyさん
2010/05/08(土) 18:06:51ID:???0347nobodyさん
2010/05/08(土) 20:13:26ID:???0349nobodyさん
2010/05/09(日) 03:09:31ID:???オススメの方法はあるでしょうか?
コンポーネントとか使わずに、クッキー処理が正解なのかな。
0350nobodyさん
2010/05/09(日) 11:14:42ID:???0351nobodyさん
2010/05/09(日) 11:16:11ID:???0352nobodyさん
2010/05/09(日) 12:38:20ID:???公式のフォーラムにもあったはず
0353nobodyさん
2010/05/09(日) 20:37:17ID:???Class 'Model' not found in /path/to/app_model.php on line 39
ってなって動かないんだけどこれってバグ?しかも、毎回なるってわけでもなく、たまには動くんだよな。謎。
0354347
2010/05/10(月) 02:18:33ID:???サンクス。そっかー、1.2じゃ使えないのか。。。
面白そうな機能なので、1.3に上げたら使ってみます。
http://d.hatena.ne.jp/hiromi2424/20100204/1265274976
0355nobodyさん
2010/05/10(月) 11:32:48ID:???AttributeBehavior
http://bakery.cakephp.org/articles/view/attributebehavior-dry-and-powerful
っつうのもある
0356nobodyさん
2010/05/10(月) 13:03:35ID:???無知の俺でもデータベース使いまくリングw
0357nobodyさん
2010/05/10(月) 17:40:26ID:???いけた!ありがとう!たすかったw
てかsaveメソッドなのにsaveしないならvalidatesに引数渡して判断さしたほうが
わかりやすいような気がするぜこれw
0358nobodyさん
2010/05/11(火) 15:29:46ID:7YcJ1BHKcakephp1.3使ってます。
sanitizeについてなんですけど、
mysqlにtext,textareaでデータを格納するとき、
■Sanitize::clean($this->data)か
Sanitize::html($this->data['User']['・・・'];
どっちつかってますか?
■sanitizeしたデータを取り出すとき、(例えばaddしたデータをeditするときなど)
おおおおおお\n<a href=ageorgja>あぞあおb</a>\n<?pjfeowjfo>fewjfoewjoewjfoewdj<?>\n<?php fjaeof
こんな風になってしまうんですけど、いい回避方法教えて下さい。
0360nobodyさん
2010/05/12(水) 00:13:03ID:???みなさんに質問なんですが、編集、削除時の楽観排他はどうやって実現されてますか?
1.データ取得時に、更新日時を持っておく。
2.編集(削除)実行前に、対象データを検索して、更新日時を取得
3. 1と2の更新日時を比較
4. 同じなら編集(削除)実行、違ったら何もしない。
こんな感じでしょうか?
CakePHPでSELECT FOR UPDATEってどうやって実現するのでしょうか?
普通にSQL文を投げる?なんとなくCakeぽっくないですが・・・
0361nobodyさん
2010/05/12(水) 09:59:39ID:???http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1500&forum=6&post_id=3400
やったことないけど、公式フォーラムにあったよ
見てないけどbehavior作った人もいるみたい
0362358
2010/05/12(水) 13:42:37ID:ISVrEn/nsanitizeしないと危険ですよね?
皆さんどーしてはるんですか?
0364nobodyさん
2010/05/12(水) 14:41:27ID:???サニタイズは必要だよ。
359の方法は試したのか?CakePHPのソースあるんだから、人に頼る前に自分でコード追ったり、
どんなSQL文が発行しているのか、確認した方がいいんじゃないか?
ここ、質問スレ?
0365nobodyさん
2010/05/12(水) 14:46:52ID:???○SQL文を
0366nobodyさん
2010/05/12(水) 15:42:41ID:???0367nobodyさん
2010/05/12(水) 15:47:50ID:???あしたまたあるってのは運営GJだと思う
0368sage
2010/05/13(木) 22:02:44ID:DXEWzNfV>>363
ありがとうございます。
2ちゃん素人なもんでsageは初めて知りました。
>>364
ありがとうございます。
あと、最初にスレ違いかもって断ったし、近くに質問する人いないんで、
勘弁してくださいよ。
0369nobodyさん
2010/05/13(木) 22:05:53ID:???1時間で半分も埋まってない
0370nobodyさん
2010/05/13(木) 22:10:10ID:???http://kmaebashi.com/zakki/zakki0042.html
読んでないけど。
つかここCakeのスレだったね
0371nobodyさん
2010/05/14(金) 08:33:55ID:???0372sage
2010/05/14(金) 13:28:20ID:UVik1blMその心は何ですか?
たしかにcleanすると、<記号とか全部変換されちゃってちゃんと
取り出せないから使えないかなとは思ってますが。
0373nobodyさん
2010/05/14(金) 13:58:58ID:???なんでもかんでもエスケープだのタグを無効化だのしとけばいいってわけじゃない。
データをDBに出し入れする時とビューで表示させる時で分けて考えれば良いよ。
0375nobodyさん
2010/05/14(金) 16:28:01ID:???出て早々だが、バージョンアップが楽しみだ
0376nobodyさん
2010/05/14(金) 18:08:01ID:???0378nobodyさん
2010/05/16(日) 05:54:58ID:???”Undefined variable: paginator”と出るようになってしまいました。
どうすれば、View中で$paginatorを取得する事ができるでしょうか。
http://book.cakephp.org/ja/compare/249/Custom-Query-Pagination
model/group.php:
class Group extends AppModel
{
function paginate($conditions=null, $fields=NULL, $order=NULL, $limit=20, $page = 1, $recursive = null, $extra = array()) {
$conditions = array("Group.id" => "1");
return $this->find('all', compact('conditions', 'fields', 'order', 'limit', 'page', 'recursive'));
}
(以下略)
}
views/group/index.ctp:
<?php echo $paginator->prev('< 戻る', array('class'=>'effectived'), null, array('class'=>'disabled')); ?>
(以下略)
エラーメッセージ: ”Undefined variable: paginator [APP/views/group/index.ctp, line **”
0379nobodyさん
2010/05/16(日) 07:57:11ID:???0380nobodyさん
2010/05/16(日) 11:43:49ID:???が、modelの中で上書きは関係ないから、まずは>>379あたりからひとつひとつチェックしていくべし
0381nobodyさん
2010/05/17(月) 23:13:07ID:???押されたボタンの名前が入る変数はdataで良いのでしょうか?
<input type="submit" value="登録" name="toroku" />
を押した場合、どの変数にどの様に格納されるのか教えてください。
0382nobodyさん
2010/05/18(火) 01:58:05ID:???var_dump()なり、pr()なり、debug()なりする。
そんなもん、いちいち聞くな。
自分で実行したもんは、血となり肉と成る。
0383nobodyさん
2010/05/20(木) 12:42:48ID:???381の様なのが多いからだよな
0384nobodyさん
2010/05/21(金) 09:47:01ID:???今は問題の切り分けのために、アクションの中身はfile_get_contentsで文字列書き込んでるだけのシンプルな形。
なぜかわかる人、教えてください・・・
0386nobodyさん
2010/05/21(金) 10:12:08ID:???2回呼ばれるというのは何をもって言ってるの?
アクションの先頭でdebug()おいて二回表示されるとか?
たんにfile_get_contents()が二回されてるだけ?
0387nobodyさん
2010/05/21(金) 10:32:14ID:2DyunNSv1.2.6です
>>386
$text = file_get_contents('test.txt');
$text .= 'a';
file_put_contents('test.txt', $text);
アクションの中身はこうなってて、1回叩くだけでtest.txtの中身が「aa」になっちゃいます・・・
0388nobodyさん
2010/05/21(金) 10:52:26ID:???debug( file_get_contents('test.txt') );
file_put_contents('test.txt', date() ,FILE_APPEND);
で、問題を切り分けてみたら?
0389387
2010/05/21(金) 12:42:28ID:2DyunNSv今出先なので後で試してみます
0390nobodyさん
2010/05/21(金) 19:30:09ID:???0391nobodyさん
2010/05/21(金) 22:22:23ID:dGPdEg+uどうしても多量のバッドノウハウが必要になるからな・・・
0392nobodyさん
2010/05/22(土) 00:43:25ID:???0393nobodyさん
2010/05/22(土) 02:23:34ID:???皆が理想としてるFWじゃ?
0394nobodyさん
2010/05/22(土) 10:58:36ID:???0395nobodyさん
2010/05/22(土) 12:01:59ID:???test.txtに"a"が入ってるなら
$text .= 'a';が .= になってるから結果が"aa"になるに決まってんじゃん
0396nobodyさん
2010/05/22(土) 14:31:49ID:???バッドノウハウの総量の話だろw
0397nobodyさん
2010/05/22(土) 15:08:38ID:???0398nobodyさん
2010/05/22(土) 15:38:56ID:???しかも基本的な所にわんさと
慣れると不感症になるけどね
俺もそうだけどさ
0400nobodyさん
2010/05/22(土) 16:52:58ID:???誰でも分かるほんの一例としては
バリデーション周りやらAuth周りやら
挿入周りにすらあるし
挙げ始めたらキリないって
0401nobodyさん
2010/05/22(土) 18:45:35ID:???例えばってんだから、ひとつ例を挙げればいいだろ。
それとも挙げられないのに、さもあるように言うnoobさんですか。
0402nobodyさん
2010/05/22(土) 19:07:46ID:???何がバッドノウハウに該当するか
自分で判断出来ないだけでしょw
0403nobodyさん
2010/05/22(土) 19:11:39ID:???0404nobodyさん
2010/05/22(土) 19:21:24ID:???>バリデーション周りやらAuth周りやら
>挿入周りにすらあるし
これでピンとこない分からないレベルの奴に
いちいち手取り足取り指導なんてしませんよw
0405nobodyさん
2010/05/22(土) 19:31:42ID:???0406nobodyさん
2010/05/22(土) 19:39:37ID:hO+yRnh40408nobodyさん
2010/05/23(日) 00:17:55ID:???0409nobodyさん
2010/05/23(日) 01:11:22ID:???0410nobodyさん
2010/05/23(日) 01:21:00ID:???0411nobodyさん
2010/05/23(日) 01:42:35ID:???0412nobodyさん
2010/05/23(日) 02:39:02ID:???空気嫁よ。
多すぎるって言ってるだろ。
0413nobodyさん
2010/05/23(日) 09:03:16ID:???0414nobodyさん
2010/05/23(日) 18:07:02ID:???阿藤快もなんだかなあって言ってたよw
0415nobodyさん
2010/05/23(日) 20:33:53ID:???ORマッパーのGROUP BYとか、そのへんも含まれる?
0416nobodyさん
2010/05/24(月) 00:37:05ID:???渡り歩いてきた爺さんとしてはCakeのソースが一番汚なくて、パッと見判別がつかねぇな。
クラサバはなんちゃってPGが溢れた時期でソース自体が汚くて見る気が起きなかったし、
javaも似たようなもんだが、Cakeはなんつーか、ほんとにこんな方向に発展したかったん
だろうか、と素朴に思うよ。
まぁspringのxml見たいに、書いてるxmlが本当に意味があるんだろうか、という異次元の
悩みよりはマシだが、ちょっとそのproject離れるとCakeは一から追わんとワカランな。
0417nobodyさん
2010/05/24(月) 00:39:55ID:???0418nobodyさん
2010/05/24(月) 00:40:28ID:???なんつーかとにかく汚い、arrayと->の洪水ってか、xml hellに似てるよ。
0419nobodyさん
2010/05/24(月) 00:44:43ID:???配列地獄を使わないPHP FWとかはどう?(これでも->からは逃れられないか)
そうなってくるとCakeっつうよりPHPの言語仕様の問題になってくるな
0420nobodyさん
2010/05/24(月) 01:03:14ID:???フレームワークもJavaVMで書く方向になればいいのに。
PHP以外の好きな言語で書けるし、
ライブラリやエンタープライズ向けの環境も自動的についてくる。
0421nobodyさん
2010/05/25(火) 08:40:56ID:???結構動かないからな。
独特の挙動も多いし厄介。
0422nobodyさん
2010/05/25(火) 18:49:36ID:kFSX6Hgcメールアドレス[ ] (name属性はemail)
メールアドレス(確認)[ ](name属性はemail_confirm)
みたいなのを作ったんですが
email_confirmのバリデーションで
'rule' => array('equalTo', $email )としたいのですが可能ですか?
マニュアル見ても本見ても変数使ってるところがなくて悩んでます。
バージョンは1.3です。
0423nobodyさん
2010/05/25(火) 19:18:13ID:???sageてー
その位置に変数使えないでしょ?
独自バリデーションを作ればOK
便利系validationをみつくろってプラグイン化してくれている人がいるから、探すもよしだな
0424nobodyさん
2010/05/25(火) 19:21:50ID:???了解です!ありがとうございます。
0425nobodyさん
2010/05/25(火) 19:30:13ID:???汚いですが…
0426nobodyさん
2010/05/25(火) 20:51:59ID:???0427nobodyさん
2010/05/25(火) 20:57:46ID:???0428nobodyさん
2010/05/25(火) 21:03:08ID:???でも不具合も多そうだし、これから触るのであれば安定版使うほうがいいだろJK
0429426
2010/05/25(火) 21:41:26ID:???0430nobodyさん
2010/05/25(火) 21:49:24ID:???0431nobodyさん
2010/05/25(火) 22:19:42ID:???0432nobodyさん
2010/05/25(火) 22:33:17ID:???0433nobodyさん
2010/05/26(水) 15:07:53ID:3pytNVWjレイアウト使うにはどうすれば良いですか?
Ver.1.2なら、"app/views/layouts"内のレイアウトより優先的に使えてたのですが。
0436nobodyさん
2010/05/27(木) 03:36:15ID:cH14ywiEBakeって使えるの??
0437nobodyさん
2010/05/27(木) 03:37:34ID:cH14ywiEようになるかな?
0438nobodyさん
2010/05/27(木) 13:07:13ID:???0439nobodyさん
2010/05/27(木) 18:36:08ID:???0440nobodyさん
2010/05/28(金) 00:34:38ID:???公開鯖に上げられないんだけど。
0442nobodyさん
2010/05/28(金) 01:36:12ID:???このスレの住人と会えたらいいなーと思ってるけど。
0444nobodyさん
2010/05/28(金) 11:24:16ID:???0445nobodyさん
2010/05/28(金) 13:17:03ID:???background-image: url("/(アプリ名)/img/aaa.png");
などとしますが、上記のアプリ名の部分が変更された場合に自動で追従するには
どうすればいいものでしょうか?
0446445
2010/05/28(金) 13:43:33ID:???こんな感じのが一般ですかね??
0448nobodyさん
2010/05/28(金) 14:18:04ID:???0449nobodyさん
2010/05/28(金) 17:04:27ID:???background-image: url("/app/webroot/img/aaa.png");
でいいじゃないの
0450nobodyさん
2010/05/28(金) 22:05:07ID:???0452nobodyさん
2010/05/29(土) 14:14:23ID:???俺だったらシンボリックリンク使うかな。
0456nobodyさん
2010/05/30(日) 15:07:32ID:???CAKEの本でなにか初めての人向けのお勧めの本ってありますか?
リファレンス的な本はCakePHP ポケットリファレンス買おうと思ってるのですが
探してみたんですがあまり評価のよろしくないものが多いので・・
おねがいーします。
0457nobodyさん
2010/05/30(日) 15:27:57ID:???CakePHP1.2ガイドブック
http://www.amazon.co.jp/dp/4839932468/
0458nobodyさん
2010/05/30(日) 16:30:06ID:???この本ってアマゾンの評価みてもわかりにくそうな印象が・・
大丈夫でしたか?
またサンプルもCDも付属なし、ダウンロードもできないっぽいですが・・
0459nobodyさん
2010/05/30(日) 16:31:49ID:???どの本も時代遅れさー。
0460nobodyさん
2010/05/30(日) 16:33:16ID:???0461nobodyさん
2010/05/30(日) 16:44:35ID:???>>460
そうなんですよねー、1.3って1.2と比べて機能とかけっこう違いあります?
CakePHP ポケットリファレンスはamaの評価もよいしリファレンス本は必要なんで
買う予定なんですけど、他の本ってどれもイマイチ評価悪いんですよねー。。
457さんの本は値段も微妙に高いしちょっと買うのに躊躇が・・。
0462nobodyさん
2010/05/30(日) 18:34:09ID:???尼のコメには
>ソースコードは
>http://github.com/yandod/cakephp-guidebook
>http://cakephp.cba-japan.com/
>からどうぞ。
って書いてあるけど
0463nobodyさん
2010/05/30(日) 20:53:48ID:???さわりの部分をひととおりさらうにはいい
でもそんな目的のためにあの値段は高過ぎる・・・
半分の薄さで簡潔に書いてくれて半額のほうがいい本になって売れると思うけどなぁ
0464nobodyさん
2010/05/30(日) 21:50:27ID:???0465nobodyさん
2010/05/30(日) 22:49:56ID:???ただ誤植が多くて、サンプルがどのコードに対応するのか分かりにくい
手を動かして練習するには不向きな気がする
0466nobodyさん
2010/05/30(日) 22:55:03ID:aCIlDOev注文部分みたいなのどうやって作ればいい?
カートの中身→住所入力→支払い方法入力→確認画面→完了みたいなの。
希望としては、URL直接入力でいきなり途中のページ、たとえば支払い方法入力
ページにいけたりしてほしくなく、決めたとおりの順序でしか
表示されないようにしたい。
だからURLは全部同じになるのかな?
でも可能なら、戻るや進むは理想どおりに動いてほしい。
これはURL同じじゃ実現は難しいのかな?
どうするのが一番いいんだろう。
別にCakePHP以外の話でもいいんだけど、
こういうところ、みんなどうやって作っているのか気になる
0468nobodyさん
2010/05/30(日) 23:03:25ID:???0469nobodyさん
2010/05/30(日) 23:08:21ID:???セッションに前の画面から来たという証を入れといて
次の画面で照合する。
これをやらないとCSRF脆弱性に繋がるよ。
0470nobodyさん
2010/05/30(日) 23:12:42ID:???0471nobodyさん
2010/05/30(日) 23:14:58ID:???参考にしてみます。
近所の図書館にガイドブック1.2あったんでとりあえずそれでしのいで
1.3の本でてから買うことにしました。
0473nobodyさん
2010/05/31(月) 02:22:36ID:UmKeQ4JHなんか実装するつもりだったんだろうけど動作してない機能とか変な引数突っ込んだらバグるメソッドとかぽろぽろ見つかるな
あとオーバーロードを無理矢理実装するのはやめてくれ
HtmlHelper::tableCellsとか酷すぎ
0475nobodyさん
2010/05/31(月) 11:48:32ID:???0476nobodyさん
2010/05/31(月) 12:53:33ID:???0477nobodyさん
2010/05/31(月) 16:46:23ID:SYZ/fufawww.hogehoge.comへ変更するのは.htaccessを弄るしか方法ないでしょうか?
0478nobodyさん
2010/05/31(月) 18:42:48ID:???AppController の beforeFilter で、ホストを取得して、それを元にリダイレクトかければいいんじゃない。
上記方法でやるよりも、.htaccessでやるのが全然いいと思うが。
0479nobodyさん
2010/05/31(月) 18:50:29ID:???ところでsqlite3を使いたくてgithubのDBOを入れて使えるようにしたのだが
bakeでmodelを作成できないのは仕様?
0480nobodyさん
2010/06/01(火) 11:47:04ID:???$options に値「0」のデータが含まれていると、未選択時にこの値が選択されてしまうのです。
form->selectの第3引数に$selected = nullを指定したときと同様の動作を望んでいるのですが。
0481nobodyさん
2010/06/01(火) 17:56:45ID:???Formヘルパーで、checkboxを以下のように出力したとき、divが消せないんですけど
これってどうやれば良いんでしょうか?
<?php
echo $form->input(
'search3',
array(
'type'=>'select',
'multiple'=>'checkbox',
'div'=>false,
'label'=>false,
'options'=>$lists
)
);
?>
0482nobodyさん
2010/06/03(木) 11:12:40ID:mt7KSN2e質問ですが、よくある検索条件&一覧の画面で、paginate使う場合にソートや
ページング後に検索条件を保存する方法はフレームワークで用意されてない
のでしょうか。
ない場合、定石的にはどうするのでしょうか。sessionに入れるというのは一つ
思いつきますが、できればやりたくありません。
よろしくお願いいたします。
0485nobodyさん
2010/06/04(金) 03:35:38ID:NZTGzHeOConfigure::write()での指定をモデルごとに入れてやろうかとも思ったけど、
viewで表示する際ソースのheight/widthに数値入るから不具合起こりそう
なんかいい解決方法ないですか?
複数のモデルでmediaファイルアップされるってのは想定されてないところ見ると普通じゃないのかな
0486482
2010/06/04(金) 06:54:54ID:???0487nobodyさん
2010/06/04(金) 10:09:17ID:???情報thx!!
0488nobodyさん
2010/06/04(金) 14:09:11ID:???>複数のモデルでmediaファイルアップされるってのは想定されてないところ見ると普通じゃないのかな
Attachement モデルで group とかで指定できるでしょ。
これができるから、mediapluginってつえーんだよね。
0489nobodyさん
2010/06/04(金) 15:29:41ID:???それはそうなんだけど
サイズ指定ね。
モデルによって必要なサムネイルサイズが違うって普通にあることだと思うんだけど、
サイズ指定はConfigure::write()のMedia.filter.imageでAppで共通の設定でしょ
ビヘイビアの引数とか、Attachmentモデルとからへんで指定できてよさそうなのにってはなし
0490nobodyさん
2010/06/05(土) 09:45:21ID:xxd6/1g9でデバッグできると知り、なんとか設定してみました。
が、CAKEで動かそうとするとデバッグできません。
最初の一行で止まるOPTIONでデバッグすると、CAKE内部で止まるのですが
sample_controller.phpとかの行でブレークポイントをつけても無視されてしまいます。
デバッグの構成は
XDebug、Default PHP Server使用で
ファイルは /cakephp/samples
URLは http://Localhost/cakephp/samples
としています。
なにが原因でしょうか? わかるかた教えてください
0491nobodyさん
2010/06/05(土) 18:22:49ID:???0492nobodyさん
2010/06/07(月) 09:14:03ID:???http://bakery.cakephp.org/articles/view/cakephp-1-3-2-released
0493nobodyさん
2010/06/07(月) 09:16:39ID:???あと質問時にあげなくても良いからね。って見てないからあげるんだろうが
0494nobodyさん
2010/06/07(月) 10:03:53ID:???IDだせ
0495nobodyさん
2010/06/07(月) 10:12:48ID:nY/RardB告知させて。
現在のところあまり盛んに動いてるオンライン勉強会がないので
あたらしくグループつくりました。
オンラインでチャット・生中などいろいろ(未定)で
できれば毎晩だらだら勉強やる予定です。
熱意のある人いたらたまーに課題だしてってアプリ作るなんてのも
ありかなと思ってます。
初心者の人はもちろん、おれが仕切って教えてやるわって人も大歓迎です。
0496nobodyさん
2010/06/07(月) 10:13:55ID:nY/RardB「初心者歓迎 PHP勉強会 2ch発」
ttp://groups.google.co.jp/group/2ch-php
php.2ch@gmail.com
参加希望の人いたら、メールくださいな。
0497nobodyさん
2010/06/07(月) 10:17:38ID:???0498nobodyさん
2010/06/07(月) 10:36:57ID:???0499nobodyさん
2010/06/07(月) 10:39:58ID:???まぁそんなボランティア精神あふれる社会人はいないけどな
学生か初心者同士が教えあう趣旨ならいいかもしれんが
狭いコミュがいやだから2chにいるわけでわざわざ登録してまでここからいくやつはいるのだろうか・・・
引き抜くならmixiとか教えてgooとかからのほうがいいぞ
0500nobodyさん
2010/06/07(月) 10:45:21ID:???学びたいなら2chなんかから一歩外に出たほうがいっぱいあるだろうに
なぜあえて2chとかつけたがるのか甚だ疑問だ
0501nobodyさん
2010/06/07(月) 11:17:18ID:nY/RardB平日というか、とりあえず毎日でもチャットかスカイプとかで何人か雑談的に
あーだ、こーだ最近のネタとかPHPについて話す場を作って、たまーに課題でアプリでも作って
やってければなってかんじです。
マジメに教えるための素材作ってオフの勉強会みたいにやるのは、たぶんこれまでの
グループとかみても運営に負担かかって衰退するだけなんで気楽にやれればなーってかんじです。
>>498-500
なんとなくやってみるかんじだよー。
mixiとかも考えてみる。
0503495
2010/06/07(月) 14:10:32ID:???* + うそです
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
0504nobodyさん
2010/06/07(月) 17:51:30ID:BTwl7tPrhttp://www.youtube.com/watch?v=wR36kSH4qeM
0505nobodyさん
2010/06/08(火) 11:06:13ID:???0507nobodyさん
2010/06/08(火) 11:24:51ID:???0508nobodyさん
2010/06/08(火) 21:32:11ID:???つーか、PHP4+CakePHPのプロジェクトなんて、片手で数えられるくらいしかないんじゃないか?
0509nobodyさん
2010/06/08(火) 22:00:39ID:???記事個別のviewやdeleteのリンクの最後が"/id:1"のようになってしまっていて、動きません
"id:"が余計で"/1"に変えてみたら動くのですが、こうなるのはソースのどこが間違っているのでしょうか?
公式が堂々と間違えているのにぐぐっても特に何も出ない
0512nobodyさん
2010/06/08(火) 22:22:57ID:???ctp内の'id'=>を消したらいけました
0513nobodyさん
2010/06/08(火) 23:06:25ID:???0515nobodyさん
2010/06/10(木) 06:23:37ID:???機能的には同じものを提供しているように思うんですが
0517nobodyさん
2010/06/10(木) 08:37:39ID:???バカだな
ニートなお前は
親に依存してるだろ?→belongsTo
でも逆に親から見ると
親はお前を養ってるだろ?→hasOne
お前兄弟いる?いるなら
親はお前(ら)を養ってるだろ?→hasMany
0518nobodyさん
2010/06/10(木) 08:52:47ID:???ちがうよ!全然違うよ!
User hasOne Profile だけど、 User belongsTo Country になる。
この場合、Country hasMany User が成り立つ。(別に設定する必要はないが)
相手側から見てhasManyが成り立てばbelongsToだよ
0520nobodyさん
2010/06/11(金) 09:02:47ID:iUDx5l1Bオープンソース徹底活用 CakePHPによるWebアプリケーション開発
http://books.google.co.jp/books?id=_6uO_tNQRTUC&printsec=frontcover#v=onepage&q&f=false
0522nobodyさん
2010/06/11(金) 19:58:24ID:???data[0][bbb]
data[0][ccc]
data[1][aaa]
data[2][bbb]
data[3][ccc]
のような配列のバリデーションって出来ますか?
0524nobodyさん
2010/06/12(土) 00:17:39ID:???Not Found
Error: The requested address '/' was not found on this server.
でハマっています。
Configure::write('debug', 0); を0以外にするとエラーにならなくなります。
どこから調べていけばいいでしょうか…。
0525nobodyさん
2010/06/12(土) 03:08:55ID:???0526nobodyさん
2010/06/12(土) 07:58:43ID:???ん?debug 1だとエラーが出ないってこと?
そしたら、layoutsファイル内にecho $content_for_layoutが無いとか?
0527nobodyさん
2010/06/12(土) 12:55:30ID:???0528nobodyさん
2010/06/12(土) 21:20:41ID:???mod_rewriteが効いてない?みたいで
cakeのディレクトリにあるindex.phpが404で開きません。
apacheのhttpd.confと
cakeの3つの.htaccessのRewriteBaseも解説本通り修正したんですが
ほかに何か問題になりそうなところってありますか?
0529528
2010/06/12(土) 21:40:47ID:???.htaccessのRewriteBase外したらおkでした。
0531nobodyさん
2010/06/15(火) 12:18:42ID:???サブディレクトリがくっついてきて、そのままだとCakePHPの吐き出す絶対パスが
合わなくなってしまいます。
mod_rewriteのrewritebaseで設定すればいけると思いますが、ホスト名によって
rewritebaseを複数設定することは可能でしょうか?
0532nobodyさん
2010/06/17(木) 13:15:31ID:???を改造したいんですが、
直接ファイルに手を入れずに別の場所において修正する事は可能でしょうか
ヘルパーを改造したいときに
cake/libs/view/helpers/*.php
を
app/views/helpers/
に
置くのと同じイメージでできればと思ってるんですが
0533nobodyさん
2010/06/17(木) 13:39:37ID:???そういう改造を施した例とかどこかにないでしょうか
HTMLとPHPをなるべく分離したいのです
よろしくお願いします
0534nobodyさん
2010/06/17(木) 14:22:14ID:bowe+bRaできるんじゃない?
>>532
app/session.phpにコピーすれば、そっちが優先して動くんじゃない?
>>533
Smarty使う方法はたくさん解説されてるから、それを参考にすればよいんでない?
0535nobodyさん
2010/06/17(木) 14:37:47ID:???0536nobodyさん
2010/06/17(木) 16:08:10ID:???とかやって表示件すとか色々出力しているのだけど
Notice (8): Undefined index: limit [CORE/cake/libs/view/helpers/paginator.php, line 543]
Notice (8): Undefined index: limit [CORE/cake/libs/view/helpers/paginator.php, line 545]
ってエラーがでる。
controller側で
$this->paginate = array(
'fields' => 'hoge',
'conditions' => array(...),
'limit' => 10,
'order' => 'id asc',
);
$this->paginate('model');
って、limitの指定をしているのになぜ?
0537nobodyさん
2010/06/17(木) 16:44:56ID:???もうやめとけ
0538nobodyさん
2010/06/17(木) 17:02:15ID:???0539nobodyさん
2010/06/17(木) 17:12:17ID:???0540nobodyさん
2010/06/17(木) 17:34:38ID:???0541nobodyさん
2010/06/17(木) 18:28:29ID:???conditionsがconditonsだったのを発見した時の脱力感・・・
0542nobodyさん
2010/06/17(木) 18:29:48ID:???0543nobodyさん
2010/06/17(木) 20:17:00ID:???0544nobodyさん
2010/06/17(木) 20:36:01ID:???0545nobodyさん
2010/06/18(金) 09:40:58ID:???Strutsの黎明期そっくりだ。
0547nobodyさん
2010/06/18(金) 17:17:03ID:???回避する方法はあるのでしょうか?
dispatche.phpのechoしている部分の前に、
「ob_clean();」を追加しても解消しませんでした。
0551nobodyさん
2010/06/19(土) 04:33:18ID:iks7bUVlviewとかcontrollerとかで、その場でHelper使いたいとき
App::import('Helper', 'Form');とか例えばやったとして
new Formして $form->input();とか使うと、
Undefined property: FormHelper::$Html って怒られます。
自動で FormHelperクラスの $helpersを読み込むのをやってくれないんだと思うんですけど
どうにかして正常に動作させられないですかね?
調べると英語で同様の症状を訴える投稿はありますけど明確な回答が見つからんです。
0552nobodyさん
2010/06/19(土) 04:45:21ID:???そのまんまなのだがw
HTMLヘルパーも読み込んでみれ
0555nobodyさん
2010/06/19(土) 15:47:58ID:???「デフォではxを選択した状態だけど、バリデーションエラー時とかにはユーザーが選択した状態」
にするにはどうしたらいいの?
optionでselected設定しちゃうと、バリデーションエラー時にその設定が優先されちゃって
ユーザーの選択じゃなくなっちゃうんだけども
0556nobodyさん
2010/06/19(土) 16:10:46ID:???で普通にいけない?
ユーザからのデータがない場合は、$valueに初期値を設定するようにして、
ユーザからのデー座がある場合は、それを上書きして view に渡す。
0557nobodyさん
2010/06/19(土) 16:40:56ID:???>ユーザからのデータがない場合は、$valueに初期値を設定するようにして、
やっぱりそれしかないのかな
フォームヘルパー自体でそういう機能を備えてくれてるといいんだけど、
コントローラー側で一手間かかるのを、出来れば省略したい
0558nobodyさん
2010/06/19(土) 17:08:19ID:???つ array('default' => 'x')
あんまり使ったことないけどね
初期値与えるならcontroller(model)のほうがいいと思うなあ
0559nobodyさん
2010/06/19(土) 17:34:03ID:???まさにそれ!ありがとう!
確かにモデルと関連させてデフォを決める場合には、ヘルパーで決めちゃわない方がいいかもしれないけど、
とりあえずこれで行くわ
0560nobodyさん
2010/06/19(土) 17:40:13ID:???あ、最後のはひとりごとだから気にしないで
あと、データが0のときは、デフォルトの値に上書きされるかも。要注意
0561nobodyさん
2010/06/19(土) 17:44:38ID:???0562nobodyさん
2010/06/19(土) 18:02:08ID:???0565nobodyさん
2010/06/19(土) 20:24:22ID:???かわいそうだろ
0566nobodyさん
2010/06/19(土) 21:06:08ID:???一番低脳だというのは言うまでもない話。
0567nobodyさん
2010/06/19(土) 21:50:44ID:???例えば
/status:active/page:2 にアクセスすると
nextのリンクは /page:3/status:active になる
といった感じです
コードを追ってみたところ、pagination helperの中でnamedパラメーターを配列として扱って、
array_margeを何度か行っている関係で、pageが配列の一番最初に来てしまって、結果、
URLの一番最初のnamedパラメーターとして表示されてしまっているようです
pagination helper自体をいじって、最終的にpageを配列の一番最後に持ってくれば
正しく動きそうですが、他にもう少しスマートな方法はないでしょうか・・・
0568567
2010/06/19(土) 22:20:31ID:???if(isset($url['page'])) {
$page = $url['page'];
unset($url['page']);
$url = array_merge($url, array('page'=>$page));
}
を追加したら、page:xが一番最後に来るのを確認できました
0569551
2010/06/19(土) 23:15:37ID:iks7bUVlそりゃわかるんですけど
そもそも読み込まれないのがなんとかならないかという話です。
App::import('Helper', 'Form');
App::import('Helper', 'Html');
$form = FormHelper;
$form->Html = HtmlHelper;
ここまでやればHtmlがないとは怒られないですが、$form->webrootがセットされていなかったりと、
そもそもApp::import('Helper' が用意されているのにも関わらず、
ちゃんと使える状態にならないってのもおかしいのではないかと思い質問させていただきました。
0571nobodyさん
2010/06/21(月) 13:51:06ID:???0572nobodyさん
2010/06/21(月) 17:40:58ID:???で、適切なデバッグレベルの場合はテストが実行されますが、これを無効にする方法はありますか?
本番リリース時などでデバッグレベルを0にした場合、テスト自体は行われませんが
「Debug setting does not allow access to this url.」
などというメッセージが出てきます。
こういう場合はwebroot直下のtest.phpを削除するのが正しいですか??
0574nobodyさん
2010/06/22(火) 20:20:10ID:???0575nobodyさん
2010/06/22(火) 20:47:10ID:???その中でヘルパーを使いたいときは
引数で渡す以外にどうすれば上手くできるでしょうか
0577nobodyさん
2010/06/23(水) 02:28:29ID:???退会すると当然Authによりはじかれてログインはできないけど、
写真に直接アクセスされたとき、はじかれませんよね?
写真一枚表示するのにCakeのコア動かしてAuthログイン判断してってのは負荷が心配だし
なにかいい方法ないですかね?
ファイル名をランダムにしててもメモされたら意味ない
でもメモする位ならファイル保存しない?じゃあよくね??みたいな永久ループしてます。
0578nobodyさん
2010/06/23(水) 02:41:17ID:???コストと実利を天秤にかけろ
0579nobodyさん
2010/06/23(水) 09:38:51ID:???ttp://neta.ywcafe.net/000774.html
この考え方で出力すればよい
(キャッシュは定期的に削除する)
が、どのみちURL叩かれたら退会前でも会員以外の人に見られるのは一緒
mixiが以前そうだったね
0580nobodyさん
2010/06/23(水) 12:39:45ID:hpuIM/fTどこが原因かチェックする方法ってありますか?
Controller自体は、find() を2回使って、出力するHTML自体も20Kb程度です。
0581nobodyさん
2010/06/23(水) 12:44:17ID:???0583nobodyさん
2010/06/23(水) 13:58:09ID:???cake\basics.phpに追加する以外に
何か方法はありますか?
0584nobodyさん
2010/06/23(水) 14:11:23ID:???0586nobodyさん
2010/06/23(水) 18:19:33ID:???Authコンポーネントを使い基本的なログイン機能を作っていたのですが
core.phpを書き換えてセッションをDB管理したら
ログイン出来なくなりました。
エラーメッセージも出ず、auth.phpを上から見ていってるのですが
どこでつまづいてるのかわかりません。
セッションをDB管理し、authを使うには何か設定が必要でしょうか
0587nobodyさん
2010/06/23(水) 18:20:11ID:???それを使わずmysql_connectやpear::DBを使ってDB接続することはありますか?
0590nobodyさん
2010/06/23(水) 23:04:49ID:???こんなもんいらね
0591nobodyさん
2010/06/23(水) 23:10:47ID:???ていうか開発者から、取るのを推奨されているんだっけ?
何のためかは良く知らないけど
改行が入ったりの予防くらい?
0592nobodyさん
2010/06/23(水) 23:24:38ID:???でも最初からあるコードは基本的に放置だな
むしろ手を加えることで何か不具合出してしまいそう
0595nobodyさん
2010/06/24(木) 00:29:11ID:???0596nobodyさん
2010/06/24(木) 01:10:16ID:???0597nobodyさん
2010/06/24(木) 02:10:58ID:???何いってんの?
0598nobodyさん
2010/06/24(木) 08:28:24ID:???ちげぇよ愛だよ
0599nobodyさん
2010/06/24(木) 13:44:40ID:???coreに記述されているハッシュの種が変わったから、
違うパスワードが生成されているんじゃないの?
照会SQLを確認してみな。
0600nobodyさん
2010/06/24(木) 23:26:58ID:???そのうちPHPの仕様が変わって絶滅するだろうな。
ガハハハハハハハハ
0601nobodyさん
2010/06/24(木) 23:45:45ID:SNEZsqXVとcakePHPによる実践アプリケーション開発 という本に
例があり一部抜粋したのですが、この先頭のeとは何なんでしょうか?
0603nobodyさん
2010/06/25(金) 08:04:32ID:???Ajaxで使うときはエラーになって邪魔です。Ajaxで使うときは出力しないようにできませんか?
0604nobodyさん
2010/06/25(金) 08:55:39ID:???beforeRenderとかで
if ($this->RequestHandler->isAjax()) Configure::write('debug',0);
って感じ
0605nobodyさん
2010/06/25(金) 10:22:11ID:???照会SQL確認して、
セッションテーブルのIDをintにしていたのが間違っていました
ばーちゃーにしたらうまく動きました。
ありがとうございます!
0607nobodyさん
2010/06/25(金) 18:49:37ID:0V5oobxvありがとうございました。
0608nobodyさん
2010/06/25(金) 20:47:40ID:???0609nobodyさん
2010/06/25(金) 20:55:23ID:???0610nobodyさん
2010/06/28(月) 01:42:58ID:???0611nobodyさん
2010/06/28(月) 04:10:11ID:???何ができれば”既存案件で使える”になるんだ?
0612nobodyさん
2010/06/28(月) 10:41:06ID:???情報の引き渡しにsessionを多用してたら、複数のブラウザを立ち上げて
並行してオペレーションを行うと動作がおかしくなりました。
同じsessionを複数のオペレーションから参照してるので当たり前といえば
当たり前なのですが。
こんな場合はURIにsession idを含めるとか、そういう対処が一番ですかね?
0613nobodyさん
2010/06/28(月) 11:07:09ID:???でもどうなった
だからおかしいと思ってる
ってのが分らなけりゃ答えようがないと思わないかい?
はいかいいえで答えてくれ
0614nobodyさん
2010/06/28(月) 11:30:46ID:???0615612
2010/06/28(月) 11:56:53ID:???はい、その通りです。例をあげると
http://sample.sakushima.net/Cake/sessions/
ブラウザを2つ立ち上げて、このページをそれぞれ開きます。
2つのブラウザを順番にリロードすると、リロードした順に1,2,…と回数が上がります。
2つのブラウザで同じSessionを共有しているので、この動作は正しいと思います。
やりたいことは、上記の動作を行った際、2つのブラウザそれぞれで1,2,…と回数を上げたいのです。
実現方法ご存じの方お教えください。
0616nobodyさん
2010/06/28(月) 12:06:27ID:???認証済みのユーザーということじゃないんだよね?
そうすると、2つのブラウザのアクセスが同一人物だと判定しなきゃいけない
URLに埋め込むとセッションハイジャックされるリスクを負うんじゃまいか?
0618nobodyさん
2010/06/28(月) 15:17:05ID:???Diary.id Diary.user_id Diary.body
Comment.id Comment.diary_id Comment.body
というDB構成で作っているときに、
「最新のコメント10件がが誰の日記に向けて書かれたか」を表示させるとき、
$this->Comment->findで、recursiveを2にしてデータを取ってきてるんだけど、
CommentとDiaryがJOINされるんだけど、それとは別にUserのデータを
取ってくるのに10回もSQLを投げてしまうのはしょうがないものなの?
CakePHPが副問い合わせに対応していないせい?
表示させたいのは
>最新のコメント10件
> こんにちは → Aさんの日記
> お久しぶりです → Bさんの日記
> 面白いですね → Aさんの日記
> ...
という感じなんだけど
0619nobodyさん
2010/06/28(月) 19:53:05ID:qHDwmPz9<TABLE width="400px"> として表にしてもブラウザの幅に
あわせて伸び縮みしてしまいます。
デフォルトのCSSファイルより、優先されると思うのですが何故でしょうか?
CSKEPHPはver1.2です。
0620nobodyさん
2010/06/28(月) 20:02:50ID:???htmlはpxいらねーよ
てか悪いことは言わん。この業界あきらめろお前は
0621nobodyさん
2010/06/28(月) 20:26:44ID:???0622nobodyさん
2010/06/28(月) 20:27:47ID:qHDwmPz9なるほど、うまくいきました。
ありがとうございました。
0623nobodyさん
2010/06/28(月) 20:36:54ID:???HTML/CSS/PHP/CakePHPこれらを切り分けもできずに
こんなところで糞な質問しちゃう奴なんざやめろ今すぐ。
0624nobodyさん
2010/06/28(月) 20:44:55ID:???今後は気をつけるだろう
0625nobodyさん
2010/06/28(月) 23:42:04ID:???0626nobodyさん
2010/06/28(月) 23:52:38ID:???1セッション当たり、10MBくらいは普通かな?
0627nobodyさん
2010/06/28(月) 23:54:20ID:???優しい奴だな。ちょっともえ
0628nobodyさん
2010/06/29(火) 07:25:59ID:???あそこは世紀を超えての名サイトだ。
0629nobodyさん
2010/06/29(火) 08:46:43ID:???これをリアルで言われて
言われたヤツやめちゃって
やめたヤツの仕事が俺に回ってきて
言ったヤツ知らん顔
俺涙目
0630612
2010/06/29(火) 12:04:06ID:???結局やりたいことというのは
「同時にブラウザを複数立ち上げたときに、それぞれ別々に状態を保持しておきたい」
ということです。極端な話、ブラウザ1・ブラウザ2でそれぞれユーザー1・ユーザー2
で認証をしたら、それぞれのユーザーで独立して動作するイメージです。
実際に作っているアプリでは、認証情報・画面遷移情報・入力データなど、結構な量の
データを画面間で保持する必要があります。実現方法として考えているのは下記です。
1.URLにSession IDを埋め込み、それを基にServer側で使うべきSessionを切り替える
→携帯サイト向けのサンプルは見つかった。いまいち良いサンプルが見つからない
2.引き継ぐ情報をまとめてシリアライズ・暗号化してURL・POSTで渡す(極力Sessionは使わない)
→通信データサイズが結構な量になるかも・・・
こうしたほうが良い等ご意見ありましたらお教えください。。
0631nobodyさん
2010/06/29(火) 12:16:19ID:???ん?>>616だけど完全に逆だと思ってた。
っていうか、違うブラウザなら、別のセッションだと認識されるのが普通だが、どんな環境でチェックしてるの?
FFとChromeでやってみたが、ふつうにそれぞれ独立してインクリメントされるよ??
0632612
2010/06/29(火) 12:47:04ID:???こちらではIE8、FF、Chromeともに下記の動作となります。
時系列で書きます。
ブラウザ1を起動
ブラウザ2を起動
ブラウザ1で「http://sample.sakushima.net/Cake/sessions/」を表示→表示回数:1
ブラウザ2で「http://sample.sakushima.net/Cake/sessions/」を表示→表示回数:2
ブラウザ1でF5(リロード)→表示回数:3
ブラウザ2でF5(リロード)→表示回数:4
0633612
2010/06/29(火) 12:55:56ID:???補足で、ブラウザ1・2ともに同じ種類のブラウザです。
もしかしたら616さん、ブラウザ1:FF・ブラウザ2:Chormeとか、
別のブラウザを立ち上げてるんじゃないかと。
0634nobodyさん
2010/06/29(火) 16:46:35ID:???サーバ側で何らかの識別データをGET/POSTで埋め込むのしか思いつかない。。
0635nobodyさん
2010/06/29(火) 17:07:06ID:???うん。そうだよ。別のブラウザでやった。
同じブラウザのタブ別で別ユーザーだと認識させたいの?
そりゃまた無茶なことを、、、
0636nobodyさん
2010/06/29(火) 17:11:36ID:???0637nobodyさん
2010/06/29(火) 17:35:04ID:???セッションが切れちゃって確かに鬱陶しいけど、まあ開発中の一時的なもんだしなあ。
0638nobodyさん
2010/06/29(火) 23:52:30ID:???0639nobodyさん
2010/06/30(水) 00:49:39ID:???データをmysqlに移行する以外は意外とめんどくさくない
0641nobodyさん
2010/06/30(水) 19:52:27ID:???Fatなコントローラーをmodelに集約しようと思い、
新しく scrape というモデルを作って、動かしてました。
ローカルでは普通に上手く行くのですが、
いざWEB上で動かすと、
Database table scrapes for model Scrape was not found.
というエラーメッセージが。。
0643nobodyさん
2010/06/30(水) 20:11:23ID:???modelで
var $useTable = false;
だったかをするとテーブルなくても怒られないけど?
0644nobodyさん
2010/06/30(水) 20:13:05ID:???すまそ
0646nobodyさん
2010/07/01(木) 04:37:27ID:???一応チュートリアルにもあるが、Cakeで始めにはまる落とし穴。
あと>>643とか使えないヤツだから気にするな。
0647nobodyさん
2010/07/01(木) 10:24:02ID:???モデルAのpaginate()の中で
SELECT * FROM a, b, c WHERE a.b_id = b.id AND b.c_id = c.id;
という形のSQLを発行しているのですが、
<th><?php echo $paginator->sort('c.name');?></th>
のリンクをクリックしてもソートされないのです。
モデルAとCはリレーションがないため、
paginate()の$order引数に 'c.name' => 'asc' が入ってこないようです。
どうすればいいでしょうか?
0648nobodyさん
2010/07/01(木) 13:01:04ID:???二度と来るな
0649nobodyさん
2010/07/01(木) 16:03:56ID:???cakeを動かした例はあるでしょうか。
同業者からの依頼でcakeを使う予定なんですが、再利用される恐れがあるため
なんとかできたらと考えてます。
0652nobodyさん
2010/07/01(木) 18:58:02ID:???そのファイルのソース中にリンク、例えばhote.htmlがあると出力したときに
hoge.html?CAKEPHP=681a529c456e8da3f6a2e39219c8f4ca
と言う文字列が必ず付くのですがこれはどうすれば消せますか?
と言うか何のためにリンクに文字列が付いて出力されてるんでしょうか?
0653nobodyさん
2010/07/01(木) 20:23:40ID:???それセッションIDだろ
session.use_trans_sid = 0にするか、セッション使わない設定にしたら?
0655647
2010/07/01(木) 22:49:41ID:???で動的に関連をセットすることでできました。
0656nobodyさん
2010/07/03(土) 02:07:02ID:???ffmpegもインストールしてやってるんだけど
初期から入ってるvideoのサムネイル設定なのに
Medium::make - Invalid instruction `VideoMedium::fitCrop()`.
とかなって死ぬ
なんか設定が足りないのかサポートされてないのか
というかMediaPluginと動画の話題が全然ぐぐってもヒットしないんだけどみんな使わないのかな
0657nobodyさん
2010/07/03(土) 02:44:20ID:???一応書いておくと
filterの指定を↓見たいにしてたんだけど
array('fitCrop'=>array(100, 100), 'convert'=>'image/jpeg')
するとvideoのClassをよむからメソッドがなくて怒られる
まさかとは思ったけど順番変えて最初にconvertおくと
array('convert'=>'image/jpeg', 'fitCrop'=>array(100, 100))
ちゃんと変換してくれました。
スレ汚しすまんです。
0658nobodyさん
2010/07/03(土) 04:16:09ID:???ついでに汚します。寝たかったのにはまって一応解決?したんで
wmvをアップして画像とかflvとかに変換したかったけどできない。
mpgならできたのに・・・ってなって四苦八苦
で、MediaPluginのソースいじることになるんだけど
vendors/......../ffmpeg_video.php
で最初に定義されてるrequire['mimeTypes']の
mswmv
ってのを
ms-wmv
に変更したら動いた。
同じ階層にあるgetid3_video.phpでも同じように定義されてあるんだけど、
そこではms-wmvになってるんだよね。揃えてみたら動きました。
なんかよくわからんが一応解決です。
0659nobodyさん
2010/07/03(土) 07:41:45ID:???PHP自体は理解しており、MVCも理解しているつもりです。
とりあえず学習の定番と言えそうな本家(日本語)のチュートリアルをやってみました。
でもこれだけでは、その後独力でCakePHPの学習を推進していくチカラが得られませんでした。
チュートリアルのつぎのステップとしてお勧めな学習方法を教えてください。
(マニュアルを理解するには、チュートリだけでは知識が浅すぎると感じました)
よろしくおねがいします。
0661nobodyさん
2010/07/03(土) 09:36:37ID:???実際の開発プロジェクトで、みんなadmin routingとか使う?
0662nobodyさん
2010/07/03(土) 09:49:14ID:???チュートリアルをやれば、あとは独力ということですね。
でも、チュートリアルを一通りやっただけで、独力で解決策を見出しながら開発を
進めていくチカラが付いたとは思えないんですけど・・・
CakePHPは習得が簡単だと思っていましたけど、実はかなり敷居が高いのでは
ないかと思ってしまいます。
0664nobodyさん
2010/07/03(土) 10:33:21ID:???何でひっかかってるんだい?
チュートリアル+入門書だけでスタートアップは十分だと思うけどな・・・
0665nobodyさん
2010/07/03(土) 12:03:57ID:???app/tmp/
の中に適当なディレクトリを作って保存する方法で構わないんでしょうか。
他に適切な配置場所があれば教えていただきたいです。
0666nobodyさん
2010/07/03(土) 16:09:42ID:???代替の書き方ってあるんでしょうか?
0667nobodyさん
2010/07/03(土) 16:49:44ID:???cakeの実践アプリケーションの本でも買ったら?
あとはcakeの開発陣の人たちはgitとかで他人のコードを読みまくるのが大切と言ってたと思う
>>665
app/tmp/の中は基本的に消えちゃってもかまわないキャッシュファイルとかの置き場なので
作成したテキスト(がどんなものなのか知らないけど)がそういうたぐいのデータならそこでいいと思う
誰か>>618答えてくれー・・・
0668nobodyさん
2010/07/03(土) 17:39:44ID:???PHPのサンプル本とかで「○○の作り方」ってのを一個一個おさらいしていったらいい
それができれば、あとはcakeの中でそれらをくっつけていくだけでしょ
0669nobodyさん
2010/07/03(土) 21:12:12ID:???チュートリアルをそのまま殆ど写しただけで「終わりました」とか言ってないか?
そりゃ身に付いてるはずがない。
コピペすれば動くんだから、エラーの時の問題解決なんか出来るようになるわけないわな。
1から作るのがまだ辛いなら、チュートリアルアプリをなにか改造してみれ。
画面を増やすとか、レコード(テーブル)にカラム追加するとか、入力チェック追加するとか。
0670nobodyさん
2010/07/04(日) 17:29:17ID:???マニュアルがうんこだから。
非公式のチュートリアルもロクなもんがないしな。
0671nobodyさん
2010/07/04(日) 17:46:20ID:???0672nobodyさん
2010/07/04(日) 18:30:42ID:???お前にとってCakePHPがはじめて使うフレームワークだからだろ。
0673nobodyさん
2010/07/04(日) 19:01:49ID:???0674nobodyさん
2010/07/04(日) 19:19:56ID:???0675nobodyさん
2010/07/04(日) 19:30:42ID:???0676nobodyさん
2010/07/04(日) 19:38:11ID:???と、
フレームワークを既に知っている人向けのチュートリアル
があると、普及が促進されるかもね。
0677nobodyさん
2010/07/04(日) 19:43:15ID:???バッドノウハウ的なもんがちょっと多いかなとは思う
0679nobodyさん
2010/07/04(日) 23:19:50ID:???チュートリアルを終えて、実際のアプリを作っていくうえで
「ここはどうやるんだろう」ということを何回も調べなければならない。
ま、どんなフレームワークでもそうだが、Cakeはチュートリアルが薄すぎる。
>>662が言っているのもそういうことだろう。
0680nobodyさん
2010/07/04(日) 23:39:54ID:6la4DkIe実際に開発通じての経験から言うと
フレームワークの設計の難に由来してる問題点も少なくないなと思った
よく知られてる大きなプロジェクトとかが
他のへ移行してしまうのは
やっぱそういった事も関係してるだろうなと思ったよ
0681nobodyさん
2010/07/05(月) 00:27:13ID:???遠回りかもだけど、それぞれの似ているようで違う仕組みだから、より理解しやすいかも。
そして、CakePHP以外に合うものが見つかるかも。
0682nobodyさん
2010/07/05(月) 01:12:10ID:???Javaの何かと比べると、覚える事が意外と少ないな、という印象なんですが・・・
0683nobodyさん
2010/07/05(月) 01:19:57ID:???簡単な手順で作れるよね。
手を入れようとすると大変だけど。
0684nobodyさん
2010/07/05(月) 03:55:03ID:???ぐぐればたいてい解決してる
0686nobodyさん
2010/07/05(月) 12:20:49ID:???レンダリングしたものを、ファイル出力するシェルプログラムを組みたいのですが…。
0687nobodyさん
2010/07/05(月) 12:56:52ID:???http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1774&forum=3
これでどう?
0688nobodyさん
2010/07/05(月) 16:54:56ID:???0689nobodyさん
2010/07/05(月) 17:52:47ID:???0690nobodyさん
2010/07/05(月) 18:02:13ID:???0691nobodyさん
2010/07/05(月) 20:02:09ID:???0692nobodyさん
2010/07/05(月) 20:37:48ID:???0694nobodyさん
2010/07/05(月) 21:17:00ID:???http://api.cakephp.org/view_source/html-helper/
オプションなかったら継承してtag書き換えるとか勝手にしろやアホ
0695nobodyさん
2010/07/05(月) 23:22:21ID:???0696nobodyさん
2010/07/06(火) 00:53:44ID:???説明不足ですまん、ソース追ったけど見つけられなかったんだ
継承して書き換えもいいけど、末尾の3文字削って>付け足すわ
0697nobodyさん
2010/07/06(火) 11:07:43ID:???複数タスクが走っている場合に
別のタスクのidを取得しちゃう可能性がある。っていう記述を
見つけてしまったんですが、
対処方法はどういったやりかたが考えられますか?
0698nobodyさん
2010/07/06(火) 11:24:19ID:???糞だな
0699nobodyさん
2010/07/06(火) 11:26:35ID:???0700nobodyさん
2010/07/06(火) 11:40:57ID:???でググったらでてきました
0701nobodyさん
2010/07/06(火) 12:03:46ID:???0702nobodyさん
2010/07/06(火) 12:56:26ID:???こちらです
0703nobodyさん
2010/07/06(火) 13:57:00ID:???0704nobodyさん
2010/07/06(火) 14:58:46ID:???0705nobodyさん
2010/07/06(火) 15:01:58ID:???p..64で本のように表示できなくなりました。どなたかp62-64の
誤りを教えてください。スクリプトは付属CDのをそのままコピーしている
のですが・・・
0706nobodyさん
2010/07/06(火) 15:03:52ID:???sendform画表示されてエラーになってしまいます>__<
0707nobodyさん
2010/07/06(火) 15:06:25ID:???どう表示されているかぐらい書こうや
0708nobodyさん
2010/07/06(火) 15:11:06ID:???質問の仕方を教えてやってるだろうが。
706もそうだが、聞きたいならどの情報に対して、何をしたらどういう状況になってるかくらい書け。
答えられるかは別問題だ。
0709nobodyさん
2010/07/06(火) 15:18:17ID:???error: SendFormContoroller could nat be found.
です
http://localhost/cake/sample/hello/sendForm?text1=なんたら(UTFコンバートされた文字列)
というURLが表示されるところ
hello/
が欠けたURLが表示されてエラーになるのです。
index.ctp
で<form method="get" action="/sendform">
と送っているのですが、hello_contorollerのfunctionで sendformが定義されているのですが、
sendform_controllerがないとエラーがでています。・・・・
0710nobodyさん
2010/07/06(火) 15:20:44ID:???でした。解説はこのコードを前提に修正していく記述なので止まってます。
0711nobodyさん
2010/07/06(火) 15:22:33ID:???0712nobodyさん
2010/07/06(火) 15:26:23ID:???○<form method="get" action="/sendform">
0713nobodyさん
2010/07/06(火) 15:27:06ID:???すまん
×<form method="get" action="/sendform">
○<form method="get" action="./sendform">
/sendformの前にドットを入れてみる。
0715nobodyさん
2010/07/06(火) 15:28:37ID:???です。たびたび申し訳ないです。
これをaction="./hello/sendForm">
にしてもだめなのです・・・
0716nobodyさん
2010/07/06(火) 15:35:38ID:???どっとなし。
これでもだめ??
0717nobodyさん
2010/07/06(火) 15:36:27ID:???勝手にふたつのレスを合わせるな
.sendForm
or
/hello/sendForm
でどうかと>>713と>>714でそれぞれ言われている
そして、その場合、アクション名は sendForm() なんだろうね?
0718nobodyさん
2010/07/06(火) 15:36:53ID:???0719nobodyさん
2010/07/06(火) 15:37:14ID:???0721nobodyさん
2010/07/06(火) 15:39:08ID:???HelloControllerで定義しているfunctionは
index()と sendForm() です。
0723nobodyさん
2010/07/06(火) 15:42:43ID:???をどんなファイル名にしてどこで表示させればいいのでしょうか?
0725nobodyさん
2010/07/06(火) 15:46:51ID:???こんなのほっとけ
0726nobodyさん
2010/07/06(火) 15:47:09ID:???debug( $this->webroot ); と表示されてしまいます>__<
0727nobodyさん
2010/07/06(火) 15:54:51ID:???うまくいかないなら「cakephp debug」でぐぐって、まず指示されたことが何かを理解しようとしなきゃ
0728nobodyさん
2010/07/06(火) 15:56:38ID:???ほっとけって
0729nobodyさん
2010/07/06(火) 16:04:38ID:???>>697の質問でソースの出所が必要とは思わないがな
んな堂々と「答えられるかは別問題だ」とか言われてもw
0730nobodyさん
2010/07/06(火) 19:05:49ID:???0731nobodyさん
2010/07/06(火) 19:45:35ID:lebgmiXfビュー側でのタスクのインターバルを変更したいのですが
この場合、$_POST('a')で受け渡せるのですが、もっとスマートに渡せる方法は
あるでしょうか?
また、コントローラのアクション内で、変数を使用すると動作はするもののUndefined・・・
未定義警告が出てしまいます。そもそも変数はどの場所でどのように、定義したら
いいのでしょうか?
アクション内で、$_POST('a')を使用して未定義警告をださないにはどうしたらいいですか?
0732nobodyさん
2010/07/06(火) 20:01:51ID:???秀和のcake本の1.3対応版か
前回のはレビュー良かったけど、すぐ売り切れだか絶版になってて実物見たこと無いわ
0733nobodyさん
2010/07/06(火) 22:56:11ID:???なかなか丁寧な解説でよさげ
0734nobodyさん
2010/07/06(火) 23:32:09ID:???slug生成に問題出るみたいね
CakePHP 1.3のキャッシュやスラッグ(Inflector::slug)に要注意 - (DxD)∞
http://dxd8.com/archives/209/
0735nobodyさん
2010/07/06(火) 23:53:22ID:???0736nobodyさん
2010/07/07(水) 20:45:57ID:6d/8d4Je未定義警告ですが仕方ないので、issetで判定して処理して消しました。
0737nobodyさん
2010/07/07(水) 21:18:42ID:???何故なら改修の場合は大抵DBにまで手は入れないから。
0738nobodyさん
2010/07/07(水) 21:58:43ID:???まあ改修案件でわざわざCakePHP使うとこはないだろうが。
0739nobodyさん
2010/07/07(水) 22:33:30ID:???FW使ってないシステムに後からFW突っ込むことなんて
Cakeに限らずできないと思うが
0740nobodyさん
2010/07/07(水) 22:42:44ID:???0741nobodyさん
2010/07/07(水) 23:10:09ID:???0742nobodyさん
2010/07/08(木) 01:27:22ID:jw2HbYMj1.3.2をダウンロードしまして、coreの設定だけを変えて
Viewに「Hello World」と表示する簡単なページを出力させたのですが、
読み込みに2,3秒かかります。
ローカルのWindowsXP・PHP5.2.5上でテストしているのですが、
何か早く処理させる方法ってあるのでしょうか?
0743nobodyさん
2010/07/08(木) 01:43:46ID:???0744nobodyさん
2010/07/08(木) 01:46:33ID:???0745nobodyさん
2010/07/08(木) 02:11:53ID:???ローカル以外で実行
0746nobodyさん
2010/07/08(木) 02:27:04ID:jw2HbYMjネットワークの問題じゃなくて、Cakeの問題だと思うんです。
あと、最低限の開発環境とやった事を記載しているので、
エスパーじゃないと答えられないという事もない気が・・・
0749nobodyさん
2010/07/08(木) 02:50:50ID:???0750nobodyさん
2010/07/08(木) 02:53:55ID:???全然足りないだろ
CPU、バストサイズ、メモリくらいまでは書け
0751nobodyさん
2010/07/08(木) 02:56:36ID:jw2HbYMjですよね・・。
本当にファイル解凍してcore.phpのSecurity.salt変更して
単純なページ表示しただけなんです。
自作のフレームワークやPEARでこういう事がなかったので
CakePHPの問題だと思っています。
とりあえず、良くある問題じゃないみたいなので、自分で解決します。
>>749
ネットに繋げる必要ないのにですか?それは信じがたいですね。
0752nobodyさん
2010/07/08(木) 02:58:34ID:jw2HbYMjCPUやCore 2DUOで2GBのローカルサーバです。
というか、サーバスペックが数年前だとしても
Hello Woldという1行テキスト表示だけで、2,3秒はあり得ないと思うんですよね・・。
ネタ扱いされているという事は、皆さんの環境ではそうでもないと言う事かな。
0753nobodyさん
2010/07/08(木) 03:07:17ID:???そこらで使われるわけねーだろ
0754nobodyさん
2010/07/08(木) 03:08:08ID:???とりあえずDebugKit入れてどこで時間食ってるか計測してみな
あとConfigure::writeのdebugを0にしてやってみると速くなったかも
おれの開発環境WinXP+Xamppでも2〜3秒は普通にあるよ。
HelloWorldはさすがにそんなにかからないと思うけど。
0755nobodyさん
2010/07/08(木) 03:09:56ID:jw2HbYMjわかりました。
あと、さくらのサーバに入れたら違和感なく表示されました。
ですので、サーバの問題だと思います。
CakePHPの問題じゃないと言う事は、自分が間違っていました。すみませんでした。
0756nobodyさん
2010/07/08(木) 08:13:32ID:???0757nobodyさん
2010/07/08(木) 10:08:41ID:???0758nobodyさん
2010/07/08(木) 10:16:08ID:???0759nobodyさん
2010/07/08(木) 10:25:56ID:???0760nobodyさん
2010/07/08(木) 10:30:37ID:???0761nobodyさん
2010/07/08(木) 10:55:14ID:???http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1592&forum=3&viewmode=flat&order=DESC&start=10
0762nobodyさん
2010/07/08(木) 10:55:40ID:???バリデーションの組み合わせをテストするだけで結構な量のテストになるのだけど
どこまでテストするべきか、それともバリデーションのテストは不要か悩む
0763nobodyさん
2010/07/08(木) 14:26:52ID:???$data['1']['1'] = 'A';
$data['1']['2'] = 'B';
$data['2']['1'] = 'A';
$data['3']['2'] = 'B';
といった配列を
$this->Session->write('data',$data);
で保存し、
次のページで
$data = $this->Session->read('data');
とやったあとで$dataを確認すると、
$data['1']['1'] = 'A';
$data['1']['2'] = 'B';
だけになっているのです。
$data['2']['1'] = 'A';
$data['3']['2'] = 'B';
がロストしています。
chromeでセッションIDの受け渡しにクッキーを使っているときだけ発生します。
IEでは問題ありません。
セッションIDをURL埋め込みにすると、問題なく動作するようです。
でも可能な限り埋め込みは使いたくないのです。
何かご存じの方、ご意見いただきたいです。
よろしくおねがいします。
0764nobodyさん
2010/07/08(木) 14:31:31ID:???どういう条件で抜け落ちるのかわららん
$data['1']['3'] = 'C';
とか
$data['1']['3'] = 'A';
を追加してみるとか
$data['1']['1'] = 'A';
$data['1']['2'] = 'B';
$data['2']['1'] = 'C';
$data['3']['2'] = 'D';
だとどうなのかとか
0765nobodyさん
2010/07/08(木) 15:20:14ID:???おっしゃるような追加もいろいろやってみたのですが
法則がつかめません。
0766nobodyさん
2010/07/08(木) 15:45:02ID:???セッションを保存しているファイルを監視していまして、
sess_****
というファイルが
IEの場合は、二つ作られるのに対して、
chromeだと三つ作られています。
その三つ目のセッションファイルの中身がすでにデータ抜け落ちているようで、
そちらを優先してreadしているみたいです。
二つ目だとデータが保持されています。
0767nobodyさん
2010/07/08(木) 16:17:09ID:???そんな感じの何かを感じた
0768nobodyさん
2010/07/08(木) 16:23:14ID:???ソースを確認してみます。
0771nobodyさん
2010/07/08(木) 23:14:17ID:???少なくともRailsとかCakeみたいに規約で縛るタイプのフレームワークは
既存のシステムに合わせるのは向いてないんだから
それに向いてるフレームワークを使えばいいだけだ
0772nobodyさん
2010/07/09(金) 08:32:46ID:???>改修案件・リプレイス案件で使えない
なぜそう思う?
0773nobodyさん
2010/07/09(金) 09:00:53ID:???命名規則が面倒とか
0774nobodyさん
2010/07/09(金) 11:58:55ID:???Cakeのようにガチガチに縛った仕様の方が
使いやすい時がある。
0775nobodyさん
2010/07/09(金) 12:08:30ID:???0776nobodyさん
2010/07/09(金) 12:41:48ID:???0777nobodyさん
2010/07/09(金) 12:43:01ID:???0778nobodyさん
2010/07/09(金) 12:49:05ID:???0779nobodyさん
2010/07/09(金) 13:38:36ID:???みたいな理由聞くけど、フレームワークだからって簡単に分かるか?
やっぱり、個々の作り方に依存すると思うんだよな。
0780nobodyさん
2010/07/09(金) 13:42:55ID:???0781nobodyさん
2010/07/09(金) 14:01:50ID:???完全OOPでCake並に使いやすいFWがほしいな
0783nobodyさん
2010/07/09(金) 14:13:15ID:???0784nobodyさん
2010/07/09(金) 14:19:35ID:???それはそうなんだが、そう言いだしたらどの書き方でも一緒だよな?
それこそ自作フレームワークでも、コメントちゃんと書いてれば。
0785nobodyさん
2010/07/09(金) 14:26:13ID:???自作でも国際的に主流になってる書き方を心がければ同じだろうな
そうした仕組みを共有しやすくしているのがFrameWorkだろ
0786nobodyさん
2010/07/09(金) 15:01:55ID:???ぱっと見はCakeに似ているようだが
もうちょっと調べてみる
0787nobodyさん
2010/07/09(金) 15:25:51ID:???FWは中身でなく、普及率が鍵。
0788nobodyさん
2010/07/09(金) 15:45:48ID:???開発スピードも遅いみたいだし
ただ、Cakeの配列だけはどうにかならんのか
Cake2まだー?
0789nobodyさん
2010/07/09(金) 15:52:57ID:???0790nobodyさん
2010/07/09(金) 15:57:14ID:???ここはスルーしてCake2なりリチウムなり待ったほうがいいかな?
みんなどんな感じなの?
0792nobodyさん
2010/07/09(金) 16:18:53ID:???設置しやすそうだし、現状ではよさげなんだが
0793nobodyさん
2010/07/09(金) 17:08:50ID:???俺も自作FWからCake1.3に移行しているけど、
手癖がある分、以降が困難だ。
しかも、自分で作ったコードを誰かと共有して使うかって言ったら
その可能性はかなり低いだろうし。自作でもいい気がしてくる
0794nobodyさん
2010/07/09(金) 18:04:28ID:???0795nobodyさん
2010/07/09(金) 18:10:41ID:???0797nobodyさん
2010/07/09(金) 18:20:59ID:???ただ流行るかは未知数
個人的には流行って欲しい
CakePHPは便利ちゃあ便利なんだが
CMS界のWPのような存在になったらそれはそれで困る
0800nobodyさん
2010/07/09(金) 18:28:05ID:???たぶん、そのままなんだろうねえ…
>>799
外見はいいけど中身が中途半端&時代遅れ
CMSはまだいいが、FWで中身が中途半端&時代遅れだとかえって使いにくい
0801nobodyさん
2010/07/09(金) 18:34:55ID:???そうはいってもライブラリも多いから使ってるんだけどなw
0802nobodyさん
2010/07/09(金) 18:52:56ID:???0803nobodyさん
2010/07/09(金) 19:53:49ID:???でも、使う側(プログラミングしない人)から見ると
動くし、プラグイン一杯あるから使うんだろうな
0804nobodyさん
2010/07/09(金) 20:13:50ID:???0805nobodyさん
2010/07/09(金) 21:38:34ID:???MTが時代遅れって言うのならわかるけど、CMSとしてはともかくブログシステムとしてWPは
最高峰だと思っていたんだが…
そんな俺が時代遅れなんだろうか
0806nobodyさん
2010/07/09(金) 21:44:10ID:???Movabletypeからかなりの人が乗り換えてる。
最新版は、複数のブログを単一のシステムで構築できるようになったから
ますます普及するんじゃないかな。
0807nobodyさん
2010/07/09(金) 22:26:54ID:???用途で使い分ければいいだけ
0808nobodyさん
2010/07/09(金) 23:05:12ID:???0809nobodyさん
2010/07/09(金) 23:50:34ID:???0810nobodyさん
2010/07/10(土) 00:00:14ID:???0811nobodyさん
2010/07/10(土) 00:12:04ID:???0812nobodyさん
2010/07/10(土) 00:23:55ID:???てか、MVC覚え立てならCakeのスレ来ないだろ
0813nobodyさん
2010/07/10(土) 00:35:25ID:???0814nobodyさん
2010/07/10(土) 00:42:04ID:???これでも意味わかめ
0815nobodyさん
2010/07/10(土) 00:42:42ID:???0816名無しさん@そうだ選挙に行こう
2010/07/10(土) 11:29:58ID:???モデルに関数作って上書きするってところまではわかるが、
独自SQLを反映させられない・・・難しすぎ
0817名無しさん@そうだ選挙に行こう
2010/07/10(土) 16:04:52ID:???どうして
$this->Model->paginate()
って使い方にしなかったのか理解に苦しむ
0818名無しさん@そうだ選挙に行こう
2010/07/10(土) 16:37:18ID:v/ICs0IKP82-84 バリデーションルールの追加で
var $validate = array(
'from' => array(
'date_format' => array('rule' => array('datetime'), 'required' => true),
'compare_from_to'=> array('rule' => array('compareFromTo')),
'not_duplicate_schedule' => array('rule' => array('isDuplicate'))
中省略
function isDuplicate($value) {
$from = $this->data[$this->name]['from'];
$to = $this->data[$this->name]['to'];
$conditions = array('or' => array(
array("from BETWEEN ? AND ?" => array($from, $to)),
array("to BETWEEN ? AND ?" => array($from, $to))
));
if($this->id) {
$conditions[$this->alias . '.' . $this->primaryKey] = '!= '.$this->id;
}
$count = $this->find('count', compact('conditions'));
return $count == 0;
}
この中の $conditions[$this->alias . '.' . $this->primaryKey] = '!= '.$this->id; で
aliasとは何が入るのでしょう? 漠然と同レコードのIDを排除して比較してるような
気はしますが、$condtionsの2番目配列には何がはいるのでしょうか?
0819名無しさん@そうだ選挙に行こう
2010/07/10(土) 17:23:31ID:???見た感じ$this->aliasはisDuplicateの呼び出し元のモデル名が入るんじゃね?
0820名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:13:41ID:oMY+XuqKhttp://blog.kushii.net/archives/1350951.html
http://www.red-mount.com/blogs/show/ruby_on_rails_cookpad
ついに月次訪問者でツイッターがmixiを抜いた!
さらにツイート数で米国を逆転か?:in the looop:ITmedia オルタナティブ・ブログ
http://blogs.itmedia.co.jp/saito/2010/06/post-4bfd.html
http://techwave.jp/archives/51473193.html
http://techwave.jp/archives/51476110.html
Twitter検索急増中【ループス斉藤徹】 : TechWave
http://techwave.jp/archives/51475780.html
Twitter共同創業者のBiz Stone氏は,
Twitterの一日あたりの検索回数が8億回に達したとコメントした。
ウィリアム氏がOdeo内で始めた小さなプロジェクトが「Twitter」だ。
Ruby on Railsを使って2週間で最初の動くバージョンを作り上げたという。
http://www.atmarkit.co.jp/news/200711/16/twitter.html
リクルート メディアテクノロジーラボ
「Railsサイト安定運用の心構え 〜8つのサービスから学ぶ」
http://b.hatena.ne.jp/entry/www.nicovideo.jp/watch/sm8258661
http://gihyo.jp/news/report/01/rubykaigi2009/0002?page=4
今では、ビッダーズについては、バックエンドはもうRailsでサクっと作っていこうという方向になっています。
広告のシステムもどんどん改善して、フェーズ3や4をやっていますし、それ以外の部分もRailsで書き直しています。
Rubyはシンプルに作れるし、自動テストが作りやすいのも良いですね。
http://www.dena.jp/recruit/sp/engineer/interview/hanabe.html
0821名無しさん@そうだ選挙に行こう
2010/07/11(日) 11:20:41ID:???0822名無しさん@そうだ選挙に行こう
2010/07/11(日) 12:07:43ID:???1.2で。
0823nobodyさん
2010/07/12(月) 17:41:22ID:???0824nobodyさん
2010/07/12(月) 17:50:23ID:???0825nobodyさん
2010/07/12(月) 18:06:31ID:???0826nobodyさん
2010/07/12(月) 18:10:20ID:???0827nobodyさん
2010/07/12(月) 18:20:47ID:???0828nobodyさん
2010/07/13(火) 00:18:32ID:???テーブル名に別名(Hogeとか)付ければいいのだけど、From句にサブクエリを使った場合はこの別名すら読んでくれなくないですか?
0829nobodyさん
2010/07/13(火) 11:50:34ID:mYlx8y+I0830nobodyさん
2010/07/13(火) 11:54:08ID:???マニュアルにもあるよん。
http://book.cakephp.org/ja/view/97/Elements
0831nobodyさん
2010/07/13(火) 12:03:54ID:???チュートリアルもこなさないで人に聞くな
アホばっかり
0832nobodyさん
2010/07/13(火) 12:53:53ID:???0833nobodyさん
2010/07/13(火) 13:38:34ID:???マニュアルに書いてあるっしょ
optionsにarray(group=>*)
0834nobodyさん
2010/07/13(火) 14:02:30ID:???0835nobodyさん
2010/07/13(火) 14:12:21ID:???ってか釣り堀はここじゃない
0836832
2010/07/13(火) 14:13:28ID:???ありがとう。
あれ?もしかして、1.2以降はgroupが使えるようになっているのか…。
1.1で、使えなかったから標準ではサポートされていないのかと思いました。
すいません。
0837nobodyさん
2010/07/13(火) 14:13:37ID:???0838nobodyさん
2010/07/13(火) 14:54:11ID:???PHPのマニュアルほど、整理されてないし。
0840nobodyさん
2010/07/13(火) 15:11:04ID:???http://api.cakephp.org/classes
ここ読めば大抵分かるなんならそのままリンクされたソース読めばいい。
0841nobodyさん
2010/07/13(火) 17:42:59ID:???似たような物作って自家製フレームワーク作ってるんだけどやたら難しい。
CakePHPからWebサイトに必要な機能を省いた
軽量版が欲しかったんだが、素直にCakePHP使った方が良いのかな・・・
0842nobodyさん
2010/07/13(火) 17:54:53ID:???既存のものを使わない理由はないな
0843nobodyさん
2010/07/13(火) 18:03:14ID:???あと、配列書きまくらないと設定できないというのも。
重くて困るという事はないが、xdebugした時のログを見ると
無駄な部分も多いんじゃないかなって思うんだよな。
ヘルパーやらコンポーネントやらを作ればいい。
オレオレフレームワークほど犬も喰わんものはない
0846nobodyさん
2010/07/13(火) 18:29:41ID:???バリデーションの処理(モデルとの連携)が難しいんだが
ま、限界を感じたら845の言うようにするよ。
0847nobodyさん
2010/07/14(水) 00:26:44ID:sCETZCgFコントローラーから参照するのって、どうすればいいのでしょうか?
staticじゃないから、DATABASE_CONFIG::$default
では駄目ですし・・。
0848nobodyさん
2010/07/14(水) 15:50:04ID:???ConnectionManager::getDataSource($this->(モデル名)->useDbConfig)
じゃだめ??
0849nobodyさん
2010/07/14(水) 16:50:30ID:sCETZCgF駄目です・・。「Class 'ConnectionManager' not found」
というようにクラスがないと出ます。
ソースはTestControllerのindex内に
$config = ConnectionManager::getDataSource($this->Test->useDbConfig);
print_r($config);
としただけなんですが・・・。バージョンは1.3.2です。
0850nobodyさん
2010/07/14(水) 17:13:41ID:???0851nobodyさん
2010/07/14(水) 17:30:31ID:sCETZCgF$config = $obj->default;
としたらいけました。この方法しかないんですかね?
0852nobodyさん
2010/07/14(水) 17:55:33ID:???■Ktai Library for cakephp 勉強会@関東
URL: http://atnd.org/events/6209
日時: 2010/07/17 11:00 to 15:00
場所: マイ・スペース&ビジネスブース池袋西武横店
参加条件: Masa-Pさんの本「PHPで作る携帯サイト デベロッパーズガイド」を持参、かつ4章までを自力である程度実装できている、もしくは出来る方
■OpenPNE3で学ぶsymfony勉強会
URL: http://atnd.org/events/6255
日時: 2010/07/24 15:00 to 17:00
場所: 手嶋屋新宿御苑オフィス
内容: この勉強会は毎回OpenPNE3の各機能、仕様にフォーカスを当て、ベースフレームワークであるsymfonyを理解していく勉強会です。
参加者はみんなsymfonyに興味のあるプログラマです。Webエンジニアとのネットワークづくりにもお役立てください。
■Python4PHPer 第7回講習会
URL: http://atnd.org/events/6344
日時: 2010/08/12 10:00 to 22:00
場所: 国立オリンピック記念青少年総合センター
内容: Python未経験者向けの、PythonとGoogle App Engine (GAE) の入門講座です。
■第11回 LOCAL PHP部勉強会
URL: http://atnd.org/events/6443
日時: 2010/08/28 14:00 to 16:30
場所: 札幌市産業振興センター セミナールーム9
0853nobodyさん
2010/07/14(水) 18:16:15ID:???0854nobodyさん
2010/07/14(水) 20:15:32ID:???0855nobodyさん
2010/07/14(水) 21:08:17ID:???0856nobodyさん
2010/07/16(金) 11:44:19ID:iQAofRLh$paginator->counterやソートの内容をコントローラーで処理して
setでビューに渡せるようにしたいと思っています。
コントローラーで「$helpers = array('Paginator');」としても
$paginatorの内容が取得できませんでした。
0857nobodyさん
2010/07/16(金) 12:34:00ID:???操作ってどんなの?
普通にpaginator使っていればコントローラ側で意識しなくても渡るけど。
もしくは、paginatorを継承して付け加えれば?
0858nobodyさん
2010/07/16(金) 13:43:53ID:iQAofRLh例えば「次へのリンクがある場合」という条件を書く時、
if ($paginator->last() != "") {
echo $paginator->next('次へ');
}
という感じのソースになりますが、
このIFの部分を含めてコントローラーで変数に置きかえ、ビューに渡したいんです。
0859nobodyさん
2010/07/16(金) 13:51:53ID:???0860nobodyさん
2010/07/16(金) 14:07:46ID:???App::import('Component','コンポーネント');
$this->コンポーネント = new コンポーネントComponent();
こんなエラーがでちゃいます
PHP Fatal error: Class 'App' not found
Appが無いって事でしょうか
ちなみに上記コンポーネントを使おうとしなければエラーはでません
cake1.2です
0861nobodyさん
2010/07/16(金) 14:20:46ID:???どこにそれ書いたの
0862nobodyさん
2010/07/17(土) 21:54:27ID:???0863nobodyさん
2010/07/17(土) 23:07:39ID:???0864nobodyさん
2010/07/17(土) 23:21:16ID:???0865nobodyさん
2010/07/17(土) 23:44:34ID:???事実を突きつけてる。OK?
0866nobodyさん
2010/07/17(土) 23:53:45ID:???特にMVCに分かれていない更新案件なら、手間がかかるだけ。
でも、それ(新規案件だけで使う)が何か問題あるのか?
0867nobodyさん
2010/07/17(土) 23:59:17ID:???0868nobodyさん
2010/07/18(日) 00:13:00ID:???今まで作っていた作り方があるのに
わざわざCakePHPを使う必要があるのか?ってこと。
お前は、自分が管理しやすいからって
一から作り直すのをクライアントに勧めるのか?
0869nobodyさん
2010/07/18(日) 00:37:30ID:???フレームワークってそういうもんだろ
PEARとか拾ってきたクラスとかってのは既存のシステムからそれを利用するコードを書くわけだけど
フレームワークって逆にフレームワークから呼び出されるコードを書くのがデベロッパの仕事なわけで
当然フレームワークに沿った描き方する必要があるに決まってる
0870nobodyさん
2010/07/18(日) 00:42:14ID:???0871nobodyさん
2010/07/18(日) 00:48:42ID:???0872nobodyさん
2010/07/18(日) 01:15:44ID:???0875nobodyさん
2010/07/18(日) 12:35:49ID:???さすがWeb界のVB
0877nobodyさん
2010/07/18(日) 18:46:00ID:???0878nobodyさん
2010/07/18(日) 22:09:37ID:4SBJVnBL商品テーブルにデータが追加されたら、在庫テーブルに商品IDが入る
と言う仕組みを作っているのですが、
ItemモデルでhasOneで結合するだけでは追加されません。
Itemコントローラーで$this->Item->saveAllした後に
$this->Stock->saveAllをするというように、分けないと登録出来ないのでしょうか?
0879nobodyさん
2010/07/18(日) 23:55:18ID:???新規でしか使えないフレームワークなんて何の意味があるのかね?
RoR系のフレームワークってDBのテーブル名やPKは必ずIDにしなくちゃいけないとか
規約があるんだろ?
そんなもの使っかえねーし、きめぇ事この上無いんだが
なんでお前らこんな糞みたいなの使ってんの?
0880nobodyさん
2010/07/19(月) 00:08:28ID:???フレームワークを理解してる?
0881nobodyさん
2010/07/19(月) 00:38:08ID:???使っている人が多いから
それ以上の理由ってあるか?
0882nobodyさん
2010/07/19(月) 00:49:59ID:???規約に沿ってないなら指定すればいいだけ。
0883nobodyさん
2010/07/19(月) 01:18:10ID:???CookBook3.7.4あたりをもう一度読み直してみて
0884878
2010/07/19(月) 01:48:08ID:???読み直しました。
やはり、一旦saveしてそこからgetLastInsertIdで追加したIDを取得して
もう一度saveするやり方しかないみたいですね。
考えたら、素のDB処理もそうするし、同じ事ですね。勉強になりました。
0885nobodyさん
2010/07/19(月) 01:49:00ID:???0886nobodyさん
2010/07/19(月) 02:27:27ID:???できないということにしといてもいいんじゃね?w
とりあえず、できるしCookbookにもろに書いてるがな
0887nobodyさん
2010/07/19(月) 03:20:44ID:???0890nobodyさん
2010/07/19(月) 12:19:44ID:???ちゃんとモデルごとに分けて配列に入れてからsaveAllしてる?
そもそもちゃんとモデルが関連づけされてる?取り出すときは一緒に出てくる?
怪しいところはその辺かなあ
0891nobodyさん
2010/07/19(月) 12:33:23ID:???ttp://book.cakephp.org/ja/view/84/Saving-Related-Model-Data-hasOne-hasMany-belongsTo
100回読み直してみて
0892nobodyさん
2010/07/19(月) 13:12:19ID:???0893878
2010/07/19(月) 13:44:01ID:???884で書いた事って、891のURLで書いている事と同じ事ではないでしょうか?
891のURLでも分けてsaveしてますよね。
ちゃんとモデル毎に分けて配列に入れてますし、
paginateする時も一緒に読み込んでますよ。
0894nobodyさん
2010/07/19(月) 13:48:04ID:???0896nobodyさん
2010/07/19(月) 14:48:41ID:???素直に適当なコンポーネント作成してアップロードさせた方が良いな
0900nobodyさん
2010/07/19(月) 18:01:14ID:???知ってるよ。
でも設定より規約を重視するフレームワークでは
推奨される行為ではないんだろ?
DBにも制約があるなんて屑加減にも程がある。
0901nobodyさん
2010/07/19(月) 18:10:10ID:???0902nobodyさん
2010/07/19(月) 18:10:33ID:???と思っても良いと思うぞ。
それから大きく離れているコードを書く人は、おれおれFWを作りやすい人なんだろうな。
0903nobodyさん
2010/07/19(月) 19:17:48ID:???その後は幸せになれるとおもうよ。規約があるから楽になるんだから。
0904nobodyさん
2010/07/19(月) 19:31:31ID:???0905nobodyさん
2010/07/19(月) 20:12:55ID:???0906nobodyさん
2010/07/19(月) 21:49:21ID:???これ、ほんとそうだな。
俺みたいに優柔不断で仕様作るのに時間かかる人間からしたら
規約が決まっている方が作りやすい。
0907nobodyさん
2010/07/20(火) 00:03:25ID:Al1F2MMrhttp://book.cakephp.org/ja/view/340/Editing-Posts
function edit($id = null) {
$this->Post->id = $id;
と言うふうに書かれていますけど、関数の$idって
どこから参照されるのでしょうか?
URLが /(コントローラー名)/edit/id:10
であれば、edit関数内で$id=10として代入されるかと思ったのですが、
代入されていませんでした。
0908nobodyさん
2010/07/20(火) 00:45:09ID:???0909907
2010/07/20(火) 01:14:21ID:???出来ました。URLの意味が
/コントローラー名/アクション/ID
だったんですね。id:10とかパラメーターが付いたら直で渡せないと。
その場合は、$this->params["named"]で取るようにします。
0910nobodyさん
2010/07/20(火) 01:22:58ID:???0911nobodyさん
2010/07/20(火) 01:36:41ID:???君達はそんなことないのか?
「楽だから」という理由だけでそれに納得してるのか。
単純な脳みそしてんだなー。
0912nobodyさん
2010/07/20(火) 01:43:24ID:???英語版を試すとおかしなことになるんだよね。
1.3用の英語ページが一番正しい。はず。
0914nobodyさん
2010/07/20(火) 02:08:39ID:???ボール蹴って「そういうもんだ」と思って楽しんだほうが楽なのと一緒だ。
0915nobodyさん
2010/07/20(火) 03:27:06ID:???0916nobodyさん
2010/07/20(火) 03:28:46ID:???0917nobodyさん
2010/07/20(火) 03:40:37ID:???規約に合わせたくない、合わせるのが諸処の事情で難しい、
そういう現場にまで押しつけようとは
CakePHPコミュニティも、俺らもしてないじゃないの
0918nobodyさん
2010/07/20(火) 04:20:04ID:???「フレームワーク勉強しろ」って。
そんで、必死に勉強しない理由探して叩いてるだけでしょ。
0919nobodyさん
2010/07/20(火) 07:51:24ID:???DB名を規則通りにすると1〜2行程度、楽ができるとかレベルだから
好きにつければいいよ。一通り、規約によるメリットを調べてから
従うもの、無視するもの選べばいいよ。
0920nobodyさん
2010/07/20(火) 08:41:24ID:???0921nobodyさん
2010/07/20(火) 16:17:54ID:???HTML許可するフォーム以外、使い道が思い浮かばない。
0922nobodyさん
2010/07/20(火) 17:21:06ID:???0923nobodyさん
2010/07/20(火) 22:32:55ID:???キャッシュ数が多くなったときのためにディレクトリで管理とかできないの?
0925nobodyさん
2010/07/21(水) 10:35:13ID:???0926nobodyさん
2010/07/21(水) 10:54:21ID:???0928nobodyさん
2010/07/21(水) 11:01:22ID:???あんま気にしたことなかったな。
ただディレクトリ見ても延々増えてるようには見えない。
0929923
2010/07/21(水) 12:17:22ID:???デフォでは用意されてないのかねぇ・・・
>>926,>>928
たとえば1万ユーザーいるSNSでいろいろキャッシュしたら
ユーザーホームのページ分1万ファイル作られるし、さらに日記
ページとかとかキャッシュしたら、天井知らずに増える。
3万ファイルくらいまでは普通にキャッシュ増えて行ってしまって、
こりゃまずいと思って対策を考えているところなんだ。
0930nobodyさん
2010/07/21(水) 12:20:00ID:???0931nobodyさん
2010/07/21(水) 12:25:47ID:???もしそうなら切り替えれば?
0933nobodyさん
2010/07/21(水) 12:50:08ID:???ひとつのディレクトリに概ね1万以上のファイルはファイルシステムの動作が遅くなる
>>929
ディレクトリで分けるのが正攻法じゃね?
0934nobodyさん
2010/07/21(水) 12:51:29ID:ULlFclUd0935nobodyさん
2010/07/21(水) 14:11:26ID:???FileEngineからでも派生させてオレオレエンジンクラスをつくればいいと思うよ。
それよりログインした後のユーザー領域をキャッシュにするのは大丈夫なのかな。
俺はなんか不安だからやってないんだけど、ユーザーIDをキーにするとかでいいんだろうか?
0936923
2010/07/21(水) 14:15:22ID:???アクセスはまんべんなくくるので、キャッシュを減らすわけにもいかず、
キャッシュファイルの数はどうしても万単位になってしまうのです
http://soudan1.biglobe.ne.jp/qa4019431.html
この辺によると、やはり同一ディレクトリには10k〜15kくらいのファイル数に
納めることが理想のようです
自分の場合は容量は特に問題ないので、ディレクトリで分けようと思っています。
cakeでは
app/tmp/cache/view/test_read.cgi_php_1268874059.php
という感じのファイルが生成されますが、これを
app/tmp/cache/view/test/read.cgi/php/1268874059.php
みたいな感じで生成する方法はデフォルトで用意されているのでしょうか?
0937nobodyさん
2010/07/21(水) 14:16:07ID:???ずっと前だけど、そのときはURL叩いたらログインして無くても表示された
でも今ならcake:nocache使えばいけるかも?
0938nobodyさん
2010/07/21(水) 14:18:45ID:???用意されてない
最後の数字がユニークなら末尾2桁とって 59 というディレクトリに書き出すようにすると100分の1になるよ
0941923
2010/07/21(水) 14:36:20ID:???保存場所を任意のディレクトリにはできるようです
キャッシュ保存前に保存場所を切り替えてディレクトリに分けて保存するという
やり方もありそうですが、結局読み出しの時にそのディレクトリを指定してあげなきゃ
いけないので、どちらにせよその辺は自前で用意しなきゃいけませんね・・・
0942935
2010/07/21(水) 14:36:36ID:???ビューのキャッシュのファイル名など決めてんのはキャッシュヘルパーの仕事すね。
0943935
2010/07/21(水) 14:52:27ID:???そんなこともあったんだ。
俺が不安に思ってたのは、キャッシュのファイル名はurlをInflector::slugにかけて作ってるから
下手すると、違うページなのに同一ファイル名のキャッシュができてしまう可能性があること。
1.3のInflector::slugはちょっと良くなったみたいだけど、どうなんだろ。
0944nobodyさん
2010/07/21(水) 14:55:11ID:???URLごとにキャッシュファイル作成するからそれはない
Inflector::slugの件は、PCREライブラリの設定で、回避可能(確認したのはv1.3.0)
0945nobodyさん
2010/07/21(水) 14:56:13ID:???フォルダ名(コントローラー名の頭文字を小文字にしたやつ)
を簡単に取得するにはどうしたらいいでしょうか
$this->name で名前がとれましたが、頭文字が大文字の
ため、毎度変換しないといけないので、もっと簡単にとれれば
と思った次第です
0947nobodyさん
2010/07/21(水) 15:45:21ID:???コンポーネントやヘルパーを作って完全にCakeに移行します?
Cake用に書き換えるとCake以外で使う時、使えなくなるなって思い
どこまで移植するか悩みます。
0948nobodyさん
2010/07/21(水) 16:16:24ID:???0949nobodyさん
2010/07/21(水) 16:32:57ID:???0950nobodyさん
2010/07/21(水) 16:39:38ID:???さっさとcakePHP用に移行したほうが幸せになれると思うけど。
cakePHPのファンクションを使用しなければ、
他のフレームワークに移行したところで影響は少ないと思う。
0951nobodyさん
2010/07/21(水) 16:52:33ID:???カラスもつつかないごみじゃない?
0952nobodyさん
2010/07/21(水) 18:00:11ID:???さっきから小一時間やっていたのですが、
ようやく1つの関数を移行できました・・。
いくらやってもデータが追加できなかったのですが、
素のSQL文って INSERT INTO table_name ('name') VALUES ('aaa')
でもインサートされて、IDはオートインクリメントで連番が付けられますが、
Cakeの場合は、IDフィールドを指定しないと追加されません。
$values["Test"] = array(
'id' =>'', // これが必要
'name'=>$name
)
こういうCake特有の仕様が物凄く面倒なんですよね・・・
0953nobodyさん
2010/07/21(水) 19:49:47ID:???0954nobodyさん
2010/07/21(水) 19:56:15ID:???0955nobodyさん
2010/07/21(水) 20:24:57ID:???0956nobodyさん
2010/07/21(水) 20:27:02ID:???0957nobodyさん
2010/07/21(水) 20:33:16ID:???0958nobodyさん
2010/07/21(水) 21:39:58ID:???Undefined variableエラーが出るんだけど、
issetで調べない方法はゴミソースで良いの?
0960nobodyさん
2010/07/21(水) 23:44:28ID:???0962nobodyさん
2010/07/22(木) 01:07:55ID:???生成した側は構造が分かっているはずだけど、
依存するのは避けたいから利用側で確認しないわけにはいかない。
0963nobodyさん
2010/07/22(木) 01:41:18ID:???24時間以降を、午前1時=25:00
というふうに30時くらいまで追加する方法ってないでしょうか
0964nobodyさん
2010/07/22(木) 01:46:11ID:???0966nobodyさん
2010/07/22(木) 02:35:07ID:???0967nobodyさん
2010/07/22(木) 12:00:40ID:???0968nobodyさん
2010/07/22(木) 14:36:53ID:+voqy8bnfindの場合、$this->B->find でBのモデルに対するデータを取得できますが、
これをページネーションでするにはどうすればいいのでしょうか?
$this->B->paginate()では駄目でした
0969nobodyさん
2010/07/22(木) 14:46:06ID:???でいけました。スレ汚しすみません。。
0970nobodyさん
2010/07/22(木) 15:50:14ID:???0972nobodyさん
2010/07/22(木) 18:44:59ID:???あとcakePHPとは関係がない。よそでやれ
0973nobodyさん
2010/07/22(木) 19:52:23ID:???cakePHPのモデルだとどう書くのですか?
0975nobodyさん
2010/07/22(木) 20:43:44ID:???Thanx!!
検索用語が難しくて全然探せなかったので助かりました。
$this->Article->doIncrement($id, 1, 'votes');
Increment Behavior (Articles) | The Bakery, Everything CakePHP
http://bakery.cakephp.org/articles/view/increment-behavior
検索用: フィールド +1 カウンター SQL field +1 counter
と思ってソースみたら、結局findByIdしたものを +1 しているからSQLは2回
投げる気がする。それだったら意味ないっぽい。
上記リンクのコメントのリンク先にあるやり方の方が良さそうかな。
$content->updateAll(array(‘num_of_purchases’ => ‘num_of_purchases+1′)
0976nobodyさん
2010/07/22(木) 20:44:53ID:???app_model.php
function UpdateHits($id)
{
//debug ($this->useTable);exit;
$FieldToInc = 'views';
$this->execute("UPDATE $this->useTable SET $FieldToInc=$FieldToInc+1 WHERE id=$id");
}
0977nobodyさん
2010/07/22(木) 21:22:06ID:???UPDATE table_name SET count=count+1
なのに、やけにめんどくさいよね。仕様だから仕方ないけど
0978nobodyさん
2010/07/22(木) 22:04:37ID:???0979nobodyさん
2010/07/22(木) 22:55:12ID:???シンプルなものなら直書きでも良いんじゃないか。
0981nobodyさん
2010/07/23(金) 01:41:37ID:???$dat = array('id'=>null,'txt'=>'AAA')
を table->save($dat)
としたら、
クエリの内容が
INSERT INTO "table" ("id", "txt") VALUES (NULL,'AAA')
となってしまって、
idはnullじゃ駄目なんだよ。とエラーが返ってきます。
通常idがnullだと、クエリからidは外してくれるんですが
何故かidが外れません
何か原因で考えられる事はあるでしょうか
0982nobodyさん
2010/07/23(金) 01:43:22ID:???0983nobodyさん
2010/07/23(金) 02:03:22ID:???これまではidを指定していても自動で外してくれていたんです。
特定の場所だけで発生しています
0984nobodyさん
2010/07/23(金) 02:06:15ID:???0985nobodyさん
2010/07/23(金) 02:10:46ID:???人間に方は放置しておk
0987nobodyさん
2010/07/23(金) 02:17:47ID:???バグを見つけてくれる人もいるだろう
0988nobodyさん
2010/07/23(金) 02:33:57ID:???0989nobodyさん
2010/07/23(金) 02:37:40ID:???0990nobodyさん
2010/07/23(金) 02:39:23ID:???この場合の排他制御ってどういう意味?
MySQLならUPDATEしていれば問題ないよね?
incrementの方は排他制御的に問題あると思うけど
0991nobodyさん
2010/07/23(金) 03:09:35ID:???システム変更でデータ移行するから一気に+1したいのか
取り出した値を常に+1したいのか
あーめんどくせーどうでもいいや
ここ最近の質問って全部同一人物だろ
ぐだぐだいってないでCakeやろうと思ったなら
オフィシャルやらチュートリアルやらAPIのドキュメントやら読めよ
嫌なら何も始めるな
0992nobodyさん
2010/07/23(金) 04:09:29ID:???同一人物じゃないが
UPDATE table_name SET count=count+1 をしたい
>ぐだぐだいってないでCakeやろうと思ったなら
>オフィシャルやらチュートリアルやらAPIのドキュメントやら読めよ
どこに書いてあるの? どこにも書いてない、できないから上記の答えになっているんだろ?
日本語が理解できないならまず日本語を勉強してこいよ
0993nobodyさん
2010/07/23(金) 04:30:20ID:???てか、count+1する場面って結構あると思うけどな。
在庫管理にカウンターに投稿数の加算とか。
チュートリアル見て質問してるだろうけど、
翻訳が変だったり、不十分だったりするから人に聞くんでしょ。
0995nobodyさん
2010/07/23(金) 08:49:45ID:???検索できるようになろうね。
それに対して>>977が
>単純にSQL文で書けば
>UPDATE table_name SET count=count+1
>
>なのに、やけにめんどくさいよね。仕様だから仕方ないけど
なんだけど、これ俺勘違いして質問者が言ってると思ってた
だからそう思うならquery()で書けばいいって書いたわけ。
0996nobodyさん
2010/07/23(金) 08:53:56ID:???0997nobodyさん
2010/07/23(金) 09:17:12ID:???http://pc11.2ch.net/test/read.cgi/php/1279844006/
どぞー
0998nobodyさん
2010/07/23(金) 14:52:49ID:???バカか?
queryでできることには誰も反論してないだろ。誰がどこでそれに問題があるって言ったと思っているんだよ。
マニュアル等に書いてないのも事実だろ?
まず日本語の読解能力つけろよ
そんな話はしてなくて今は排他処理のことを聞いているんだよ。
0999nobodyさん
2010/07/23(金) 15:25:43ID:???w
1000nobodyさん
2010/07/23(金) 15:50:25ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。