【PHP】フレームワーク CakePHP
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2006/11/18(土) 20:53:22ID:???本家
http://www.cakephp.org/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
0002nobodyさん
2006/11/18(土) 20:58:37ID:???0003nobodyさん
2006/11/18(土) 22:48:32ID:???0005nobodyさん
2006/11/19(日) 10:59:04ID:???0006nobodyさん
2006/11/19(日) 13:27:36ID:EFwoFeZu下手するとsmartyより覚えることが少ない
慣れることは重要だが
00073
2006/11/19(日) 14:21:47ID:???0008nobodyさん
2006/11/19(日) 18:23:56ID:???0009nobodyさん
2006/11/19(日) 19:59:39ID:???Ruby on Railsに似てるんですよね?
エキスパートプログラマーの皆さん、ご質問への回答をよろしくお願い致します。<(_~_)>
0010nobodyさん
2006/11/19(日) 20:03:59ID:???↑シンホニーのスレタイ・・・なんだかな〜。orz
0011nobodyさん
2006/11/19(日) 20:04:39ID:???cakeはPHP4で且つどうしてもっていう理由がない限り世話になりたくないな
00133
2006/11/20(月) 11:04:26ID:???何度も言うがsmartyで挫折した俺様でも大丈夫でしょうか?
0014nobodyさん
2006/11/20(月) 12:17:58ID:???まずはこの通りにやってみる
00153
2006/11/22(水) 02:22:02ID:???そう、Hello Worldを表示するだけでいいんだよ。それを教えてくれ
0016nobodyさん
2006/11/22(水) 04:20:41ID:???サーバとCakeがしっかりインストールされているものとする。
1.app/config/database.php.default のファイル名をdatabase.phpに変える(10秒)
2.こうしてできたdatabase.phpをエディタで編集、とりあえずmysqlにつながるように設定(15秒)
3.app/views/pagesの下にhome.thtmlを作って、
中身はとりあえず<strong>3は極度に忍耐力の無いゆとり教育の犠牲者で精神疾患</strong>とする(20秒)
4.ブラウザで確認(5秒)
5.ちょっと抜けてるとこを修正(5秒)
6.もう一度ブラウザで確認(5秒)
はいできた。ちゃんと答えたんでやってくれ
00173
2006/11/22(水) 23:10:36ID:???ここにつまずいて1分オーバーした。
0020nobodyさん
2006/11/24(金) 03:26:44ID:???本物は俺様だけどもう名無しで潜伏するからバカにしないでくれ
0021nobodyさん
2006/11/27(月) 09:17:16ID:???mod_rewriteが悪いのかな?と思いつつ調べてみたら.htaccessのRewriteBaseを設定しないといけないと書いてあった。
/.htaccess
RewriteBase /cake_blog_tutorial
/app/.htaccess
RewriteBase /cake_blog_tutorial/app
/app/webroot/.htaccess
RewriteBase /cake_blog_tutorial/app/webroot
これで動作した。同じ事で初っ端から躓く人が居るかもしれないからここに書き残しておく。
(躓いたおかげでチュートリアルに1時間半かかったw)
参考:orihasam’s log
ttp://d.hatena.ne.jp/orihasam/20060809
0023nobodyさん
2006/11/29(水) 22:41:18ID:???0024nobodyさん
2006/11/30(木) 13:49:29ID:???database.phpにてdriverは、pear-drivernameとあったので
pear-ibaseとしてみたのですが、ファイルが見つからないとなります。
pearとすると、venderにDB.phpがないと怒られます。
PEARへのパスはinclude_pathにあり、他のスクリプトではPEARを利用できます。
(これがクリアできても、connectの書き方が不明なのですが・・・)
どなたかよろしくお願いします。
002521
2006/11/30(木) 14:42:13ID:???/trunk/cake/libs/dbo_factory.php
76 // special case for PEAR:DB -- driver name in the form of 'pear-drivername'
77 elseif (preg_match('#^pear[\-_](.*)$#i', $config['driver'], $res))
78 {
79 uses('dbo/dbo_pear');
80 $config['driver'] = $res[1];
81
82 $instance = array(new DBO_Pear($config));
83 }
/trunk/cake/libs/model/dbo_pear.php
62 function connect ($config)
63 {
64 $this->config = $config;
65
66 $dsn = $config['driver'].'://'.$config['login'].':'.$config['password'].'@'.$config['host'].'/'.$config['database'];
67 $options = array(
68 'debug' => DEBUG-1,
69 'portability' => DB_PORTABILITY_ALL,
70 );
71
72 $this->_pear =& DB::connect($dsn, $options);
73
74 return !(PEAR::isError($this->_pear));
75 }
うん、最近始めたばっかりでよく分かってないんだ。(趣味PGのFW初挑戦で手探り状態だし)
0026nobodyさん
2006/11/30(木) 16:05:16ID:???乙
左の行番号は手動で書き加えたんですか?
なんかツールとか使って、行番号を表示できるんですか?
便利なツールがあれば教えてください。
よろしく!
002721
2006/11/30(木) 16:16:08ID:???Classes で見たいクラスを選択すればメソッドとか継承関係が見れるし、そこから行番号付きのソースコードも見れて便利。
0028nobodyさん
2006/11/30(木) 16:48:52ID:???XAMPPでApacheとMySQL動かして、開発環境はPHP IDE使ってます。
>便利なツール
phpspotのPHPエディタのスタンドアロン版とかいいかも(PHPファイルを修正する時とかに愛用)
導入は簡単だし、行番号表示とかPHPの入力支援も付いてたりして、なかなか使いやすいですよ。
↓開発環境とかエディタに関しては以下のスレが参考になるかと
【ZendStudio】PHP統合開発環境 Part2【Eclipse】
http://pc8.2ch.net/test/read.cgi/php/1154082822/
PHPエディタって、どうよ?
http://pc8.2ch.net/test/read.cgi/php/1079460638/
>>23
明日から12月・・期待しておきますね。
0029nobodyさん
2006/11/30(木) 16:54:17ID:???最初 Windows XP + php-5.1.4 で http://p4life.jp/cake/ のアプリケーションを試したところ問題なく動きました。
次に環境を変えて Windows XP + php-4.4.4 としたところ
Notice: Undefined index: Item in C:\cake\cake\libs\view\templates\scaffolds\list.thtml on line 106
というエラーが発生して動かなくなりました。
http://manual.cakephp.org/chapter/intro には Compatibility with PHP4 and PHP5 とかいてあるのですが。。。
0031nobodyさん
2006/11/30(木) 17:37:35ID:???CakePHPはphp4でもphp5でも動きますよ。
原因はよく分からないけど、存在しない添え字で配列を読もうとしてエラー吐いてるみたいだから・・
Controllersでのsetを書き間違えてたりとかありそうだけど、そのまま打ってるのなら問題なく動作するような・・んー?
003324
2006/12/01(金) 18:04:24ID:???アドバイスありがとうございます。結論からいうと接続できていません。
PEARディレクトリを、vendersにコピーしました。
■driverにpearを指定すると
Your database configuration file is present.
Fatal error: Cannot instantiate non-existent class: dbopear in 'path to'\cake\libs\model\connection_manager.php on line 106
■driverにpear-ibaseを指定すると
Your database configuration file is present.
Fatal error: Unable to load DataSource file dbo\dbo_pear-ibase.php in 'path to'\cake\libs\model\connection_manager.php on line 153
です。該当行をみてみましたが、パッと見でわかるようなものじゃないので・・・。
connectについては、それ以前のようです。
どうしたものか・・・。
0034nobodyさん
2006/12/01(金) 18:20:27ID:???003524=33
2006/12/01(金) 23:38:28ID:???ibaseでいけません。
dbo以下にあるファイルを探しに行くので、使えそうなのは
adodb,mssql,mysql,mysqli,odbc,postgres,sqliteとpearっぽいです。
dbo_ibase.phpも書けそうに思えますが、
後々のことを考えpearで使いたいのです。
0036nobodyさん
2006/12/02(土) 04:38:50ID:???0038nobodyさん
2006/12/02(土) 13:58:45ID:???http://pc8.2ch.net/test/read.cgi/php/1133510693/
PHPで焼きそば作れますか? (28)
http://pc8.2ch.net/test/read.cgi/php/1164731497/
無理!!!
PHPでケーキ作れますか?
無理!!!
0039nobodyさん
2006/12/02(土) 14:09:23ID:???http://www-128.ibm.com/developerworks/edu/os-dw-os-php-cake1.html
004024=33
2006/12/02(土) 21:44:41ID:???3.A supported database engine (currently MySQL, PostgreSQL or using a wrapper around ADODB).
pearは実装できていないんですね。他のフレームワークをあたります。
0041nobodyさん
2006/12/02(土) 22:28:03ID:1bAtVRRj0044nobodyさん
2006/12/04(月) 11:00:42ID:???0046nobodyさん
2006/12/04(月) 18:02:51ID:???ということでは
004724
2006/12/05(火) 15:58:17ID:???■pearでの接続は実装されていないことを再確認しました。(cake_1.1.10.3825.zip)
cake/libs/model/dbo/dbo_pear.phpは、クラス名すら違っています。
(DBO_Pear、正しくは、DboPear)つまり、一度もテストすらされていないようです。
なぜそんなものをリリースに入れているのか不明です。文化の違いでしょうか。
クラス名を変更してもdsnが生成されません。disconnect()も「先にこっちを・・・」
といったメッセージの出力のみです。
■ADODB試してみました。Interbase,Firebirdではおそらくテーブル名、フィールド名
の規約で使えません。Interbase,Firebirdは、テーブル名とフィールド名は
大文字となります。
create table posts ...とするとPOSTSというテーブルが作成されます。
create table "posts" ...でpostsが作成されますが、
select * from posts だとテーブルPOSTSが対象となり、postsを対象に
するにはselect * from "posts"と"でくくらないといけません。
フィールド名も同じです。
そのため、チュートリアルは動作しないようです。
回避する方法もなさそうなので断念します。
004929
2006/12/07(木) 15:33:20ID:???http://p4life.jp/cake/
のアプリケーションはphp4でうごきませんでしたが、
ブログ作成チュートリアル
http://www.cakephp.jp/doc/blog_tutorial.html
はphp4で動きました!
Controllerの書き方を考える必要があったようですね。
0050nobodyさん
2006/12/12(火) 09:03:56ID:???modelのJoinで同一テーブルに対してhasAndBelongsToManyの関連を
複数設定した時に、scaffoldで生成した更新画面の関連表示が一つしか
出てくれない状態になってしまいます。
配列のキーはそれぞれのJoinTable名をつけてるので、キーを上書きしてる事は
ないと思うんですが、同様の現象を経験した方いらっしゃるでしょうか?
classNameが一緒だと駄目なのかなぁ・・・
0051nobodyさん
2006/12/14(木) 08:15:45ID:???1.1.9の段階ではDBO_Adodbはバグだらけだったよ。
使うならデータベースはMySQLかPostgreSQLにしておいたほうが無難。
0052nobodyさん
2006/12/14(木) 21:06:37ID:???自己レスです。
classNameを分けることで無事うまくいきました。
具体的な対応としては、対象テーブルを基底クラスとしてJoin毎に継承クラスを
ベタに作成してバインディングしたところ、期待した挙動になってくれました。
ん〜、いいフレームワークだ。
0053nobodyさん
2006/12/19(火) 17:04:45ID:???でアクセスしたときに静的なHTMLを表示させたいんですが、view などはどこに置けばいいのでしょう?
/app/config/core.php の
define('CAKE_ADMIN', 'admin');
はコメントをはずしてあります。
/app/views/pages/admin_home.thtml なるものを作成しましたが、以下のエラーが表示されました。
Missing controller
You are seeing this error because controller Controller could not be found.
Notice: If you want to customize this error message, create app\views/errors/missing_controller.thtml.
Fatal: Create the class below in file : app\controllers\controller.php
<?php
class Controller extends AppController {
var $name = '';
}
?>
0057nobodyさん
2007/01/11(木) 10:42:20ID:???レコードの追加・削除・編集を繰り返していると、
なぜか時々、追加したレコードの前に、「空のレコード」が
いくつか挿入されてることがあります。
これまで何度かあったのですが、うまく再現できないので、
MySQLの問題なのかCakeの方なのかの切り分けもできません・・・。
MySQLではフィールド 'id' をauto incrimentに設定してます。
(フィールド追加するときはauto incrimentにまかせてます)
どこからあたりをつけていけば良いのかのヒントでも
頂ければ助かります。
環境は
XAMPP
cake1.1.12.4205
です。
どうか、ご教示よろしくお願いします。
005857
2007/01/11(木) 10:43:37ID:???×auto incriment
でしたすんません・・・
005957
2007/01/15(月) 15:43:05ID:???デリートをPHPMyAdminでやってるから?関係ないか
0060nobodyさん
2007/01/26(金) 23:45:23ID:???もし、いたら伺いたいのですが結構バギーでしょうか?
CakePHP1.1で開発始めたのですが、メール機能等で欲しい機能が
充実しているので1.2をやっておいたほうがいいのか、と考えております。
よろしければ、現状での感想と1.2使ううえのアドバイスをお願い致します。
m( __ __ )m
0062nobodyさん
2007/01/27(土) 21:40:37ID:???貴重なアドバイス感謝です。
ドキュメントとか考えるとやはり1.1のいい感じですね。
ありがとうございましたw
他にも何かありましたら、ご教授お願い致します。
0063nobodyさん
2007/02/01(木) 09:23:03ID:???・cakePHPのキャッシングってどこからどこまでの動作を飛ばすのか
・view/elementsがviewとキャッシュの生存時間が違う場合キャッシュできない?
自前でしろってことかしらん
・view/layoutsでヘッダ部を動的に変えたい場合どうするんだろう。
css変えたいとかjsのライブラリをロードしたりしなかったりしたい
誰か知ってたら教えてプリーズ
0064nobodyさん
2007/02/01(木) 10:56:18ID:???>・cakePHPのキャッシングってどこからどこまでの動作を飛ばすのか
コントローラから吹っ飛ぶので、キャッシュファイルにはコントローラ生成のPHPが書いてある。
他はどっかにコードが落ちてそうな気がする。
0065nobodyさん
2007/02/01(木) 15:01:58ID:???適当に変数setしてそれ見ればいいんじゃないの?
0066nobodyさん
2007/02/06(火) 10:10:41ID:???サンクスです。
$title_for_layout、$content_for_layout
しか使えないのかと思ってた。
0067nobodyさん
2007/02/07(水) 06:36:38ID:???最初「ケークPHP」と読んでしまった。
0069nobodyさん
2007/02/07(水) 14:02:03ID:???だよね。俺まえも「エイジャックス」のこと「アジャックス」って読んでた前科モチだから・・・
「ペア」も「ピアー」って読んでたし・・・
0070nobodyさん
2007/02/08(木) 16:29:26ID:???0072nobodyさん
2007/02/08(木) 17:35:17ID:???0073nobodyさん
2007/02/08(木) 21:05:03ID:???いちおう下げて質問書いときます。
問題は、cakePHPでファイルアップロードが出来ない・・・
<input type="file" name="image" />
こんな感じでフツーにファイルを送信して、
$_FILESで参照してるんだけど、
cakePHPで実装すると$_FILESの値が空になります。
pr($this->rapams['form']);
では、
['image'] => hogehoge.jpg
とファイル名のみ参照できる模様で、ますます混乱するばかり。
なんか解決のヒントないですか
0074nobodyさん
2007/02/09(金) 09:21:40ID:???なわけないか
0075nobodyさん
2007/02/11(日) 08:17:38ID:???>>74 の言うとおり enctype="multipart/form-data" がないに一票。
0076nobodyさん
2007/02/26(月) 17:58:23ID:???1.テンプレートの方でファイル送信フォームのとこ
<?php echo $html->file('data[Hoge][image]', array('id' => 'hoge_image', 'size' => '40', 'value' => $hoges['Hoge']['image'], )) ?>
とする
2. $this->params['data']['Hoge']['image']['name']に名前が入ってるのと
$this->params['data']['Hoge']['image']['size']にサイズが入ってるのを確認する
3.
move_uploaded_file($this->params['data']['Hoge']['image']['tmp_name'], WWW_ROOT . "images/uploaded/". $this->params['data']['Hoge']['image']['name'])
ってな感じでどうよ
0077nobodyさん
2007/02/26(月) 22:12:58ID:???modelにhogeを追加しろってエラー出るんですが、、、Railsじゃできるんだけどなぁ
0078nobodyさん
2007/02/26(月) 22:49:28ID:???controller内に
var $uses=array();
とかやってみたらいけるんでないかい。ためしてないけど。
だめなら$useTable=array();なHogeモデルを作ったらいけるんでないかい。
ためしてないけど。
0079nobodyさん
2007/02/27(火) 00:36:01ID:???でうまくいきました!
ありがとうございます。
でも、なぜかうまくいったのかわからないので、具体的に教えてくれたらすごく嬉しいです。
0080nobodyさん
2007/02/27(火) 01:34:37ID:???78ではないが、
Hoge_ControllerはデフォルトでHogeというモデルを読み込もうとするから。
いわゆるひとつのconvention over configuration
0081nobodyさん
2007/02/27(火) 11:39:45ID:???ダミーとして、配列を無理矢理渡してあげるって幹事?
0082nobodyさん
2007/02/27(火) 12:08:47ID:???$users = array('Hoge');
がデフォで設定されるんで、モデルを使わないことを明示してあげるって漢字
0083nobodyさん
2007/02/27(火) 12:20:08ID:???なるほどね!
hogeコントローラで、hoge2モデルを使いたかったら、
$uses = array('hoge2');
ですね。
hoge2もhoge3も使いたい場合はどうしたらいいんでしょう?
ってかここ人少ないですね。cakeって人気ないのかな?
0084nobodyさん
2007/02/27(火) 14:22:29ID:???$uses=array('hoge','hoge2','hoge3');
何のための配列なのかと小一時間
たしかにもりあがってねえなーCake。
0085nobodyさん
2007/02/27(火) 19:30:45ID:???>77みたいなのが例外
0086nobodyさん
2007/02/27(火) 21:34:43ID:???Smarty間に挟んでるのかな。
0087nobodyさん
2007/02/27(火) 21:47:05ID:???逆にやったことない人は挫折しやすい気がする。
Railsみたいに本出てないからなぁ。
0088nobodyさん
2007/02/27(火) 23:32:59ID:???グローバル変数はどこで定義する?
0089nobodyさん
2007/02/27(火) 23:43:04ID:???core.phpに設定しときました。
0091nobodyさん
2007/02/28(水) 12:06:30ID:???/app/config/bootstrap.php
これですか?それともcakeフォルダの中の?
そういうノウハウはどこで学ぶんでしょうか?
0092nobodyさん
2007/02/28(水) 14:03:51ID:???0093nobodyさん
2007/02/28(水) 14:46:51ID:???マニュアル http://www.cakephp.jp/doc/
フォーラム http://cakephp.jp/modules/newbb/
Wiki http://cakephp.jp/wiki/
あとBakeryというのがいろいろコンポーネントやらチュートリアルやらをまとめてくれていて便利
http://bakery.cakephp.org/
0094nobodyさん
2007/03/05(月) 18:53:07ID:5xyR9GqB| ノ _, ,_ ヽ
/ ● ● |
| ( _●_) ミ _ (⌒)
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
0095nobodyさん
2007/03/06(火) 22:58:14ID:???0096nobodyさん
2007/03/07(水) 16:24:28ID:VDwNq8qV0097nobodyさん
2007/03/07(水) 16:32:50ID:???0098nobodyさん
2007/03/07(水) 17:30:19ID:???0099nobodyさん
2007/03/07(水) 17:45:06ID:???0100nobodyさん
2007/03/09(金) 12:47:31ID:GFS6POXv0102nobodyさん
2007/03/09(金) 13:31:48ID:GFS6POXvJavaのこと言ってんの?
PHP対抗はRubyか.netでしょ
RubyにRailsと同等のシェアを持つフレームワークあるの?
0103nobodyさん
2007/03/09(金) 13:50:50ID:???0104nobodyさん
2007/03/09(金) 13:52:37ID:???>RubyにRailsと同等のシェアを持つフレームワークあるの?
rubyは他に何もないマイナー言語だから一極集中してるだけ。
それくらい普通に考えればわかるだろうに、>>100はかわいそうな子だなぁ
0105nobodyさん
2007/03/09(金) 14:37:43ID:GFS6POXvPHPでは訴求力のあるフレームワークが無いんだねっていう話
Javaは乱立してても有用なフレームワーク多いよ
皮肉とかわからないゆとり世代はかわいそうだね^^
0106nobodyさん
2007/03/09(金) 14:45:13ID:???0107nobodyさん
2007/03/09(金) 18:06:17ID:???0108nobodyさん
2007/03/09(金) 18:12:06ID:???所々それと違うところが多くてうざい。
っていうかRails使える無料サーバがあればいいや。
0109nobodyさん
2007/03/10(土) 07:11:37ID:???0110nobodyさん
2007/03/10(土) 09:42:26ID:oMuhw0IRRailsを超えることが目標なら
完璧に真似るのはデメリット。
0111nobodyさん
2007/03/10(土) 10:26:35ID:???PHP on Rails > Symfony > Zend Framework
という構図になると思う
0112nobodyさん
2007/03/10(土) 10:27:45ID:???0113nobodyさん
2007/03/10(土) 14:52:15ID:???それは知ってる。
だけど、PHP on Rails作ったら、使う人いるから創って欲しいということ。
PHP6くらいになって、PHPもまぁ使ってやってもいいかな?とDHHが思ってくれたらラッキー☆
0114nobodyさん
2007/03/10(土) 16:31:35ID:???あんなジャップが作った過疎言語で挑戦するのは。
0115nobodyさん
2007/03/11(日) 02:55:55ID:???0116nobodyさん
2007/03/11(日) 05:54:09ID:???0117nobodyさん
2007/03/11(日) 10:07:04ID:???0118nobodyさん
2007/03/11(日) 17:38:38ID:???0119nobodyさん
2007/03/12(月) 09:35:31ID:o+qmRSfV0120nobodyさん
2007/03/12(月) 15:51:45ID:P8Amefsiusersテーブルにprefecture_idフィールドを設けてprefecturesテーブルのidとひもづけたいです。
<?php echo $html->selectTag('User/prefecture', $prefectures, null, null, null, false); ?>
user.phpでは
var $belongsTo = array('Prefecture' =>
array('className' => 'Prefecture',
'conditions' => '',
'order' => 'Prefecture.id ASC',
'foreignKey' => 'prefecture_id'
)
);
prefecture.phpでは
var $hasOne = array('User' =>
array('className' => 'User',
'conditions' => '',
'order' => '',
'dependent' => true,
'foreignKey' => 'prefecture_id'
)
);
とすると
Call to a member function on a non-object in users_controller.php on line 23
となります。
該当行は
$this->Prefectures->generateList(null, 'id ASC', null, '{n}.Prefecture.id', '{n}.Prefecture.name');
です。
どこが原因かどなたかおわかりになりますでしょうか?
よろしくお願いします。
0121nobodyさん
2007/03/12(月) 17:04:11ID:???rails記法ならPrefectureでないかい?
モデルもPrefecture.phpの様だし
0122nobodyさん
2007/03/12(月) 17:41:39ID:P8Amefsiレスどうもありがとうございます。
おっしゃるとおり、
$this->Prefecture->generateList();
とすることで、該当行のエラーはでなくなりましたが、
Undefined variable: prefectures in add.thtml on line 44
と別のエラーがでてしまいました。
44行目は>>120にあるように
<?php echo $html->selectTag('Participation/prefecture', $prefectures, null, null, null, false); ?>
です。
$prefecturesを$prefectureとすると
Undefined variable: prefecture in add.thtml on line 44
となります。
なお、users_controlle.phpに
var $uses = array('Prefecture');
を定義しました。
これを入れないと
Call to a member function on a non-object in users_controller.php on line 23
となります。
そもそも$usesを使わないとエラーなのはおかしいのでしょうか?
0123nobodyさん
2007/03/12(月) 18:33:57ID:???0124120
2007/03/14(水) 22:40:27ID:QrdB0vAL$this->set('prefectures', $this->User->Prefecture->generateList());
User を間にはさんで set すればよいようですね。
でもこのやり方でよいかどうか疑問です。。。
http://groups.google.ch/group/cake-php/ で探しました。
どうもありがとうございました。
0125nobodyさん
2007/03/18(日) 16:45:53ID:???この人なんでこんなgoogle trends気にしまくってるの?
ZFやsymfonyに比べてcakeのドキュメントは読みにくいから、
単に検索頻度が多いだけって気づかないんだろうか
0127nobodyさん
2007/03/21(水) 18:05:49ID:???View中でrequestActionではなくrenderWithoutLayoutしたいんだが…
views/elementsに入れるかapp_controller弄って
elements検索パス拡張→renderElementするしかないのかな。
あと関係ないけど一つのアクションで複数insertするとき
$this->Model->save(array(...))の前に$this->Model->id=null;入れなくちゃならないんだね。
数分嵌ったわ。createとかあればいいのにな。
っと思って調べたらid=false, data=array()するcreate()てのがあるのか。
Railsとの微妙な違いにとまどう。
0128nobodyさん
2007/04/02(月) 13:08:29ID:???あーそれ俺もハマった。
まぁ理屈としてはわからなくもないんだけどなぁ
ドキュメントには書いてあったけど、同じケースの情報無かったよね?
頻出しそうな処理だと思うんだけどねえ。
それともみんな他のやり方で複数insertしてんのかなあ
0129nobodyさん
2007/04/02(月) 16:46:26ID:???postgresでのシーケンスがなぜかうまく動作しないようなので
$this['data']['Hoge']['id'] = $this=>Hoge->getMaxId +1
してますがそれが何か
0130nobodyさん
2007/04/02(月) 21:44:58ID:???$hasAndBelongsToMany = array('そのクラス');
すれば出来なくはないが、(実際にはhabtmテーブルがないため)軽くSQLエラーが出てる。
model中で$usesは使えないみたいだし…
0131nobodyさん
2007/04/12(木) 18:08:47ID:???0133nobodyさん
2007/04/15(日) 04:00:43ID:???なかなか理解できん。。。
逆引きの解説とかないのだろうか?
0135nobodyさん
2007/04/15(日) 12:50:33ID:???) ) ノ ノ
(((( > ̄ > )))) \(^o^)/ ((( < ̄< ))))
) )
((( > ̄ > )))) code igniterハジマタ
0136nobodyさん
2007/04/15(日) 13:09:30ID:???) ) ノ ノ
(((( > ̄ > )))) \(^o^)/ ((( < ̄< ))))
) )
((( > ̄ > )))) code igniterオワタ
0137nobodyさん
2007/04/15(日) 13:37:36ID:???あっちのスレでは確かにCI盛り上がってるけど、
CakeはCakeで用途に応じて使い分ける事になると思うぜ
5人前後のチームで開発するとかなら
Cake選択した方がいいよ、情報多いし。
CIの日本語情報待ってても埒が明かん。やってくれてるありがたい人はいるけど。
0140nobodyさん
2007/04/25(水) 15:09:41ID:???0141nobodyさん
2007/04/26(木) 18:41:50ID:tC5hNJVI日本語版まだ?
http://www.amazon.co.jp/Cakephp-Recipes-Fabio-Cevasco/dp/0321497732/ref=pd_bbs_sr_1/503-3174338-7104719?ie=UTF8&s=english-books&qid=1177580396&sr=8-1
Amazonで予約可。近日発売! 2009/1/21予定!
( ゚д゚)ポカーン
0142nobodyさん
2007/05/04(金) 10:37:35ID:???http://www.amazon.com/CakePHP-Recipes-Fabio-Cevasco/dp/0321497732
0143nobodyさん
2007/05/05(土) 01:46:41ID:???それくらいやってくれんとほんと使いもんにならんのだが…
0144nobodyさん
2007/05/05(土) 03:08:52ID:???あれはあくまで初期実装テスト用。
decorateやMasterbakeでも入れなさい
0145nobodyさん
2007/05/05(土) 10:08:09ID:???0146nobodyさん
2007/05/06(日) 00:26:48ID:???TurboGearsやDjango、symfonyには素晴らしいscaffoldがあるよ。
凄い細かいところまで機能拡張できる。
少量の手間で実用十分なバックエンドツールが作れる。
>>145
bakeって1度吐き出したら終わりなんじゃないの?
テーブル変更したら反映してくれる?
いろいろ調べてみたら、どうやらdevバージョンではページャやソートを
付けてくれるみたいだな。
とりあえず今はpaginationコンポーネントを_beforeScaffoldに無理やり突っ込んで
Pagination実現したけど、やっぱイマイチだなぁ…
こりゃ4しか選択肢がないプロジェクトでしかメリットねーな
0148nobodyさん
2007/05/06(日) 00:54:52ID:???だからdecorateやMasterbakeは吐き出して終わりで、
テーブル変更に対応できないんじゃないのかって聞いてるんだけど、
それくらいわかるだろ?常識的に考えて。
0149nobodyさん
2007/05/06(日) 01:04:29ID:???0150nobodyさん
2007/05/06(日) 01:07:03ID:???>bakeって1度吐き出したら終わりなんじゃないの?
>テーブル変更したら反映してくれる?
まぁいいや、んで反映してくれんの?
0151nobodyさん
2007/05/06(日) 01:54:52ID:???1.都合が悪いときは黙秘。
2.都合が悪いときは「ぐぐれ」。
0152nobodyさん
2007/05/06(日) 02:06:20ID:???何をどこに反映して欲しいのか分からん
0153nobodyさん
2007/05/06(日) 02:07:09ID:???bakeもdecorateもMasterbakeも出来ない(と思う)けど、
だったら変更を反映する物を作ってくれるとでもいうわけ?
是非お願いします。それがないからCakeは使いたくない。
0154nobodyさん
2007/05/06(日) 02:07:18ID:???できんよ。masterbakeはただのジェネレータ。
現状rails派生の中ではCIに続いて2番目に貧弱なんじゃね?
0155nobodyさん
2007/05/06(日) 02:14:00ID:???は?普通に>>146であげられてるFWのラインナップ見ればそれくらいわかるだろ?
カラム付け足したらその分のカラムが出てくるとか、結合キー足したらそのリンク先の
テーブルの内容が出てくるとか。
ソースの上書き無しに他のFWならそれが可能なわけですが。
0156nobodyさん
2007/05/06(日) 02:23:44ID:???是非カラムのコメントをhumane field nameにする機能を。
0157nobodyさん
2007/05/06(日) 03:20:02ID:???よほど短納期で品質が低くてもOKならいいかもしれんが、
それにしたってCakeより優れたフレームワークが他にあるし。
0158nobodyさん
2007/05/06(日) 03:28:26ID:h5MYHYt10159nobodyさん
2007/05/06(日) 03:56:20ID:???0160nobodyさん
2007/05/06(日) 04:53:05ID:???使った事無い奴が、無いとかいってんじゃねーよ。
0161nobodyさん
2007/05/06(日) 05:21:18ID:???0162nobodyさん
2007/05/06(日) 06:29:20ID:???0163nobodyさん
2007/05/06(日) 06:44:15ID:???>ここで出てきた、欲しいという機能はすべてあるし。
ほんとにあるならこんなに盛り上がってないしw
使った事無い奴が、あるとかいってんじゃねーよ。
0164nobodyさん
2007/05/06(日) 09:34:25ID:???頑張らないと出来ないからクソ。
0166nobodyさん
2007/05/07(月) 07:04:41ID:???0168nobodyさん
2007/05/07(月) 12:26:32ID:???0170nobodyさん
2007/05/07(月) 12:48:00ID:???なんで無料で見せてやらないといけないんだ?
金払うなら金額によっては見せてやる。
価値のあるコンテンツに金払うのは常識。
嫌なら自分で探せ。
0172166
2007/05/07(月) 16:35:56ID:???残念ながら開発中なので見せられない。
0174nobodyさん
2007/05/07(月) 22:48:01ID:???しかも、悪い噂も多い2ちゃんねる。
自分が作っているのを教えると、
このサイトの開発者は
2ちゃんねらだとばれる。
常識的に考えて教えるわけが無い。
0175nobodyさん
2007/05/07(月) 23:26:24ID:???0176nobodyさん
2007/05/08(火) 00:10:31ID:???0179nobodyさん
2007/05/08(火) 03:24:46ID:???0180nobodyさん
2007/05/08(火) 03:25:29ID:???0181nobodyさん
2007/05/09(水) 00:45:48ID:???0182nobodyさん
2007/05/11(金) 09:49:27ID:???Web2.0 ビギナーズバイブル
http://www.cbook24.com/bm_detail.asp?sku=9784839923228
Chapter 9 CakePHPとPHPによるWeb 2.0高速開発
9-1 WebアプリケーションフレームワークCakePHP
9-1-1 CakePHPとは
9-2 習うより慣れる
9-2-1 ウェブログを作ろう!
9-2-2 開発環境について
9-2-3 CakePHPのダウンロード
9-2-4 新規プロジェクトの作成
9-2-5 データベースの準備
9-3 アプリケーションを作る
9-3-1 新規アプリケーションの作成
9-3-2 モデルの作成
9-3-3 コントローラの作成
9-3-4 ビューの作成
9-3-5 アプリケーションを動かしてみる
9-3-6 なぜ動くのか?
9-4 ブログ機能を追加する
9-4-1 カテゴリとコメント機能を付ける
9-4-2 カテゴリとコメント機能の仕組みを理解する
9-4-3 認証機能を付ける
9-4-4 RSS配信機能を付ける
9-5 もっとブログ
9-5-1 indexページを変えてみる
9-5-2 カテゴリ別indexページを作ってみる
9-5-3 カテゴリ一覧を作ってみる
9-5-4 詳細表示画面でコメントを入力できるようにする
9-6 スタイルの変更
9-6-1 スタイルシートを使う
0183nobodyさん
2007/05/11(金) 17:49:19ID:???0184nobodyさん
2007/05/11(金) 19:38:19ID:???なんで二回も言うんだよ?!
0185nobodyさん
2007/05/11(金) 21:05:47ID:???0186nobodyさん
2007/05/12(土) 15:25:45ID:???PHPによるJavaScriptを書かないAjax
http://www.9-ten.co.jp/bookdata/1753.php
Part 4 AjaxをサポートするPHPフレームワーク
4-1 CakePHP
4-1-1 CakePHPのインストール
4-1-2 アプリケーションの作成
4-1-3 CakePHPのヘルパー
4-1-4 データベースへのアクセス
4-1-5 CakePHPのAjaxサポート
4-1-6 高度なAjax機能
0187nobodyさん
2007/05/12(土) 15:27:41ID:???http://www.phppro.jp/magazine/2007_winter.php#article5
0188nobodyさん
2007/05/17(木) 18:27:26ID:???という俺もないが。
0189nobodyさん
2007/05/21(月) 13:07:42ID:???0190nobodyさん
2007/05/21(月) 13:29:44ID:???http://cakephp.jp/doc/
0191nobodyさん
2007/05/24(木) 14:12:50ID:GefDq5o4レイアウトなのでコントローラからも直接渡せないのです。
よろしくお願いいたします。
0192nobodyさん
2007/05/24(木) 15:09:11ID:???一番スマートかどうかは知らんが
0193nobodyさん
2007/05/24(木) 15:09:46ID:GefDq5o40194nobodyさん
2007/05/24(木) 15:13:26ID:???ttp://www.cakephp.jp/doc/ch07s02.html#id4806116
0195nobodyさん
2007/05/24(木) 15:15:41ID:GefDq5o4それをセッションで判断してるんですけど、
すべてのコントローラとすべてのアクションからセッションの値(ログインしているか)をsetするのは非現実的なので、
何かいい方法はないかなぁという質問です。
0196nobodyさん
2007/05/24(木) 15:22:08ID:???で、現実的にはAppControllerの__construct()をオーバーライドして
そこでsetするのがいいんじゃないかな。
cakeのライブラリを直接いじるのが気になるなら、
AppControllerを継承したMyAppControllerクラスを作って
__construct()のオーバーライドはそこですることにして、
他の自作のたくさんのコントローラはMyApppControllerを継承する。
0197nobodyさん
2007/05/24(木) 15:35:35ID:IzNiejk0ここだけは気をつけろ
0198nobodyさん
2007/05/24(木) 16:28:48ID:GefDq5o4ちょっとめんどくさそうなんで、別の方法模索します。どうもです。
0199nobodyさん
2007/05/25(金) 03:17:17ID:???どうせ、業務でつかうんだろうに。
0200nobodyさん
2007/05/25(金) 03:53:03ID:???コンストラクタのオーバーライドが面倒って・・・w
0201nobodyさん
2007/05/25(金) 11:54:10ID:???MyAppController.phpを作らなくても、
appディレクトリ直下にapp_controller.phpをおけば、アプリからは自動的にこれが使われるようになるよ。
AppModelも同様。
0202nobodyさん
2007/05/25(金) 14:13:21ID:???0203nobodyさん
2007/05/25(金) 14:34:37ID:heBQtPKbって感じでfalse渡すと全部拾ってくるのはどういう理屈?
0204nobodyさん
2007/05/25(金) 19:05:16ID:???string か array を渡せと書いてあるはず。
0205nobodyさん
2007/05/26(土) 00:04:23ID:???0206nobodyさん
2007/05/28(月) 14:07:41ID:???0207nobodyさん
2007/05/28(月) 14:18:38ID:???恥ずかしいので発表しないでください。
0209nobodyさん
2007/05/28(月) 16:21:28ID:???0211nobodyさん
2007/05/28(月) 17:19:52ID:???ブラウザを閉じるまで持続させる、とかはどうやって設定するんでしょうか。
0212nobodyさん
2007/05/31(木) 15:17:02ID:9EiCBHk0たとえば、あるページにだけ使いたいjsを読み込んだり。
レイアウトに指定すると、全てのページで読み込まれるからあまりよろしくないですよね。
よろしくおねがいします。
0213nobodyさん
2007/05/31(木) 15:23:36ID:???0214nobodyさん
2007/05/31(木) 15:23:57ID:???自動的に制御したければそういうヘルパーを書いてもいい。
0215nobodyさん
2007/05/31(木) 15:50:36ID:9EiCBHk0なるほど。盲点でした。
ありがとうございます。
でも、1行のためにファイル1つ増やすのもなんかスマートじゃない気がするんですが、
みなさんが同じ場合でもそうしますでしょうか??アドバイスおねがいいたします。
0216nobodyさん
2007/05/31(木) 15:56:27ID:???どれぐらいの量のタグを追加するのか、
将来的にも他のページで使う可能性はないのか、など。
0217nobodyさん
2007/05/31(木) 16:33:59ID:???0218nobodyさん
2007/05/31(木) 18:08:22ID:9EiCBHk0具体的にどういうことですか?
0219nobodyさん
2007/05/31(木) 20:23:12ID:???いやー、具体的にと言われても…
つーか、レイアウトにエレメント埋めて、そこで条件判別すればー?って話なんだけどさー。
0220nobodyさん
2007/05/31(木) 20:45:45ID:???0222nobodyさん
2007/06/02(土) 08:24:46ID:???layout側の記述
<head>
<?php
if(isset($javascripts) && is_array($javascripts)){
foreach($javascripts as $js){
echo JavascriptHelper::link($js) . "\n";
}
}
?>
</head>
で、controller側から
$this->set('javascripts', array('prototype', 'tekitou');
って記述するとprototype.jsとtekitou.jsが読み込まれる。
0223nobodyさん
2007/06/02(土) 11:18:32ID:???0224nobodyさん
2007/06/02(土) 11:18:50ID:???0225かけphp
2007/06/06(水) 11:42:57ID:i598mYRRCake使ってる人たちにお聞きしたいのですが、実際に使っている方にとってCakePHPって
どこまで満足して使えていると思いますか? CakePHPがあれば大抵のアプリは
簡単に構築できるようになるのかな。
0226nobodyさん
2007/06/06(水) 11:46:51ID:???Paginationや認証もわざわざ自分で書く(持ってくる)必要があるから簡単とはいえない気がする。
bakeに類するものを使っても、対話式は非効率だし。
0227nobodyさん
2007/06/12(火) 11:52:23ID:9MpyswiS0228227
2007/06/12(火) 14:20:15ID:9MpyswiSところで、改行コードを改行タグに変換してくれるヘルパーってないですかね?
標準で実装しててもいい機能だと思うけどなあ
0229nobodyさん
2007/06/12(火) 15:57:53ID:???0230nobodyさん
2007/06/12(火) 17:30:42ID:???0231nobodyさん
2007/06/12(火) 18:00:52ID:???0232nobodyさん
2007/06/14(木) 15:56:59ID:ZlJLpzATclass ChildController extends ParentController
としても、Cannot inherit from undefined class parentcontrollerと、エラーが出てしまいます。
0233nobodyさん
2007/06/14(木) 20:35:37ID:???0234nobodyさん
2007/06/15(金) 10:39:14ID:???うわ、すげぇ、こんなド素人がフレームワークを使おうとしている。
cakePHPはそういうポジションなのか・・・。
0235nobodyさん
2007/06/15(金) 13:08:03ID:???データベースのフィールド増やすたびに
/app/tmp/cache/models
の下のキャッシュを削除しないといかんのでしょうか?
そうしないとcakePHPは新しいフィールドを一切認識してくれません
0237nobodyさん
2007/06/15(金) 16:15:48ID:WBx+PEHj開発中ならDEBUGを1以上にしてればいいんじゃない?
0238nobodyさん
2007/06/15(金) 16:20:32ID:???これのせいで2時間悩んだ
0239nobodyさん
2007/06/18(月) 13:41:31ID:As+yaC2S"2007-06-18 12:00:00"って文字列渡しても認識してくれるけど
0240nobodyさん
2007/06/18(月) 14:18:11ID:???MySQL内で型の変換してるんだとおもうけどな。
時間順にソートできるんだから。
0242nobodyさん
2007/06/18(月) 17:44:42ID:???$this->model->del(array(1,2,3,4));
複数削除するのはSQL直接叩かないとだめなのか?
0243242
2007/06/18(月) 17:46:37ID:???$this->model->del($i);
アホっぽいか('A`)
0244nobodyさん
2007/06/18(月) 18:30:53ID:???DboSource::delete(&$model, $conditions) を呼び出せば一応出来る。
$db =& ConnectionManager::getDataSource($model->useDbConfig);
$db->delete($model, 'id = 1 or id = 2');
ただこの方法だとbeforeDelete()とかはされないので
必要なら明示的にやらないといけないが。
0245nobodyさん
2007/06/18(月) 18:47:07ID:???送信ボタン押したら、確認画面にいくようにしてるんですけど、
この間でバリデーションを行って、エラーが出れば、
edit.thtmlに戻るようにしてるんですが、パラメータのidの値をvalueに入れちゃってるんで、
フォームで編集(変更)した値が消えて、初期値に戻ってしまうんですが、
何かスマートな方法ありますでしょうか?
私の考えでは、
editアクションで、データが送信されなかった場合のみ、valueに設定する初期値を、
コントローラからビューにsetさせ、ビュー側でsetされたかifで調べて、valueに入れる。
データが送信されたら、何も渡さない(inputのfieldNameに基づき送信データがvalueに入る)ようにしているんですが、
inputの数だけifで調べて、コントローラ側でもinputの数だけsetしなければいけないので、かなり面倒なことになってます。
もっとスマートな方法があれば助言お願いいたします。
0246nobodyさん
2007/06/18(月) 18:59:27ID:???何もしてないのに勝手に初期値に戻るわけないだろ。
findとかでDBから値を読み込んでるところがあるはず。
そこを確認画面以降は行わないようにすればいいだけなんじゃないのか?
これで分かんなかったらコントローラのソース晒せ。
0247242
2007/06/18(月) 19:01:11ID:???thx
結構、奥の方まで食い込まないとなのね
>>245
的を射てるか分からないけど
コントローラ側で$this->dataに代入するしないを分岐するだけでいいんじゃないかな
0248nobodyさん
2007/06/18(月) 23:44:54ID:???デフォのvalidatorってpreg系なので、UTFなら日本語自体は通るが、
「ひらがなのみOK」とかってできなくね?
ということで結局mb_ereg系のバリデータ書いちゃったよ。これでええのんか・・・?
0249nobodyさん
2007/06/19(火) 00:13:11ID:???UTF-8なら、u修飾子つかえばOK
var_dump(preg_match('/^[ぁ-ん]+$/u', 'あいうえお'));
var_dump(preg_match('/^[ぁ-ん]+$/u', '漢字かな交じり'));
0251245
2007/06/19(火) 11:37:07ID:OkFSOfnZ$hoge1_attribute['size'] = 20;
$hoge1_attribute['value'] = null;
if(!empty($Hoge['Hoge']['hoge1'])){
$hoge1_attribute['value'] = $hoge['Hoge']['hoge1'];
}
echo $html->input('Hoge/hoge1', $hoge1_attribute);
こんな感じでinputの数だけ直前に記述しているんですが、こんな感じでやるしかないんでしょうかね?
かなりビューがみにくくなっちゃいますが・・・
みなさんならどうしますでしょうか、助言おねがいします。
0252nobodyさん
2007/06/19(火) 12:44:17ID:???Set::merge使えばおわりじゃん。
0255nobodyさん
2007/06/19(火) 15:29:42ID:???0256nobodyさん
2007/06/19(火) 16:10:22ID:???まず、ショッピングカートがあります。
そのショッピングカートはいろんなタイプの商品があります。
その商品タイプごとに入力できるデータ項目が違います。
(飲料商品タイプは内容量ミリリットル入力フィールドがあるけど、
雑誌商品タイプではISBNフィールドがあるなど。)
この場合に商品タイプごとに専用のテーブルをつくるのは
変な設計ではないと思いますが、この商品タイプを
CakePHPで作ったアプリの管理画面から増やそうと思ったら
create table文を発行することになると思います。
またこの商品タイプの管理画面を担当するphpファイルを
コピーして増やすことになると思います。
一般的にはbake等でプログラマが手動で追加していくコード・DB構造が
エンドユーザーが管理画面から操作することにより、
自動的にプログラムコードが拡張されていくようなイメージになります。
こういうのって気持ち悪いシステムなんでしょうか?
他にこのような自動的にプログラムが拡張されるような
仕組みを持ったものありますか?
このまま進めると大きな問題になりそうで不安です。
0257nobodyさん
2007/06/19(火) 16:20:37ID:???「飲料食品タイプ」の内容量ミリリットルって
「雑誌商品タイプ」でいうところの書籍重量ってのと、どう違うの?
逆にISBNコードってのは業界の商品流通コードなんですよ。各業界にも
あれこれあるでしょ?使うかどうかは別にして。
0258nobodyさん
2007/06/20(水) 00:23:26ID:???> そもそも「商品タイプ」というものに必要な属性の抽出が出来てない感じをうけるな。
世の中のすべての商品タイプをあらかじめ抽出なんて不可能でしょう?
> 「飲料食品タイプ」の内容量ミリリットルって
> 「雑誌商品タイプ」でいうところの書籍重量ってのと、どう違うの?
> 逆にISBNコードってのは業界の商品流通コードなんですよ。各業界にも
> あれこれあるでしょ?使うかどうかは別にして。
だからなんなんでしょうか?
例なんだから、細かいところにこだわりすぎ。
共通で汎用の商品タイプ作れとかそういう話ですか?
価格ドットコムで検索したことありますか?
不可能でしょ。そんなこと。
0259nobodyさん
2007/06/20(水) 00:33:05ID:???0261nobodyさん
2007/06/20(水) 02:21:55ID:???>>257 の「使うかどうかは別にして」というのはそういうことだと思うよ。
ただ「書籍重量」という例はちょっと悪いな
もしそういうものを作るんなら、たとえば
・商品カテゴリテーブル(id,商品名)
・商品詳細項目名テーブル(id,商品カテゴリid,項目名,項目タイプ)
・int項目タイプ詳細テーブル(id,商品カテゴリid,商品詳細項目id,値)
・varchar項目タイプ詳細テーブル(id,商品カテゴリid,商品詳細項目id,値)
・text項目タイプ詳細テーブル(id,商品カテゴリid,商品詳細項目id,値)
この4つですむじゃん。たとえばだけど
とにかく>>256は正規化でしらべやがれ、
DB板(ドラゴンボール板)に行け、そして戻ってくるな
つうか、初心者増えたのか?cake界は
0263nobodyさん
2007/06/20(水) 02:34:35ID:???0264nobodyさん
2007/06/20(水) 06:53:32ID:???>239
>242
>245
>256
厨発生中だな。
245と256は同一?
0265nobodyさん
2007/06/20(水) 10:48:12ID:zjQXSfAjやっぱり、CakePHPが絡んでくるので、どうしてもCakePHPの説明が入ってしまいます。
ここの方がよかったかもしれません。
どなたかご回答お願いします。。
0266nobodyさん
2007/06/20(水) 12:04:49ID:???なにがしたいのかわからん。タイプ数減らしたいだけか?
0267nobodyさん
2007/06/20(水) 13:57:48ID:zjQXSfAjclass Bbs1Controller extends AppController
{
var $m = ここに$this->Itemと同等のが入れたい
function index()
{
$this->m->findAll()
}
}
こんな感じのを想像していて、
$m(コントローラで使いたいモデル)をあとで変更できるようにしたいのです。
$this->Item->findAll()みたいな、モデルを使うところがたくさんあるので、
継承したあとに、var $mだけ書き換えれば、違うテーブルを使えるようになったらいいかなぁと思ったんですが。。。
get_object_varsではできませんでした。
0269nobodyさん
2007/06/20(水) 16:59:59ID:zjQXSfAj本番環境に移行するとなると、いろいろとめんどくさいんだよな。
0270nobodyさん
2007/06/20(水) 17:58:58ID:???class anyclass extends base
{
$model = 'default';
function index()
{
$this->{$this->model}->findAll();
}
function setter($model)
{
$this->model = $model;
}
}
$class = new anyclass();
$class->findAll();
$class->setter('other');
$class->findAll();
0271nobodyさん
2007/06/20(水) 18:07:04ID:???>DB板(ドラゴンボール板)に行け、そして戻ってくるな
>つうか、初心者増えたのか?cake界は
君のテーブル見る限り、君自身が完全に初心者なんだが…
0273nobodyさん
2007/06/20(水) 18:23:54ID:???書籍重量って書籍が決まればそれに付随して一意に決まるだろ…
喩え出す奴が馬鹿すぎるとダメだなw
しかもそれに面白レスしてる261が別人ってのはにわかに信じがたい
さすがcakeかっけーぜ
0274nobodyさん
2007/06/20(水) 18:57:14ID:???0275nobodyさん
2007/06/20(水) 19:22:59ID:???0277nobodyさん
2007/06/21(木) 09:42:13ID:???商品テーブル
・商品ID
・カテゴリID
・品名
・価格
・詳細説明
・更新日
・登録日
・特徴1
・特徴2
・特徴3
・特徴4
商品カテゴリテーブル
・カテゴリID
・カテゴリ名
・特徴1の項目名
・特徴2の項目名
・特徴3の項目名
・特徴4の項目名
でいいんじゃね?
特徴1〜4はカテゴリによって使用しなくてもOK。
書籍は「重量」を入れなくてもいいが、「作者名」・「ISBN」が必要。
飲料は「商品コード」は入れなくてもいいが、「容量」が必要。
0279nobodyさん
2007/06/21(木) 10:21:46ID:???0280nobodyさん
2007/06/21(木) 11:25:20ID:???0281nobodyさん
2007/06/21(木) 12:21:36ID:???クライアントに「特徴が5つ以上必要なカテゴリが出てきたら
別途見積もりになりますのでご連絡下さい」と言えばOK
>>279
クライアントが満足して使えりゃそれでいいんだよ
0282nobodyさん
2007/06/21(木) 12:25:37ID:???0283nobodyさん
2007/06/21(木) 13:01:06ID:???0284nobodyさん
2007/06/22(金) 07:56:43ID:???0285nobodyさん
2007/06/22(金) 10:50:28ID:???0287nobodyさん
2007/06/23(土) 02:46:18ID:???cake本はやくでないもんか。
0288nobodyさん
2007/06/23(土) 02:52:45ID:???0289nobodyさん
2007/06/24(日) 20:00:51ID:???本番環境はPHP+mod_rewriteが使えるApache+MySQLは使えるんですが、すぐ移行ってできるもんなんでしょうか?
そういうのを説明してくれているサイトって無いですよね。。
0290nobodyさん
2007/06/24(日) 21:19:34ID:???ディレクトリセパレータにcakeが用意してる定数DSを使うとか・・
特に気にせずとも動いちゃってるので気にしたことがないっす
0291nobodyさん
2007/06/24(日) 21:29:19ID:???え、cakephpのフォルダをそのまま本番ディレクトリへコピーするだけなんでしょうか?
webrootだけをdocumentroot下に置いて、それ以外は上に置くとかなんかありませんでした?
0292nobodyさん
2007/06/24(日) 21:30:54ID:???一概にどうすればいいとは言えない
0294nobodyさん
2007/06/24(日) 21:52:03ID:???0295nobodyさん
2007/06/24(日) 22:12:50ID:???ありがとうございます。
もちろんテスト環境つくってやるつもりなんですが、
やっぱり試行錯誤する感じでいくしかないですかね。
0296nobodyさん
2007/06/25(月) 00:55:35ID:???テスト環境で動くなら。
0297nobodyさん
2007/06/25(月) 18:13:58ID:???0298nobodyさん
2007/06/25(月) 19:46:41ID:???0300nobodyさん
2007/06/27(水) 12:00:32ID:5woCK0g1コントローラで、
webroot/temp/test.txt
を削除したかったら、unlink()にどう指定してあげればいいんですか?
unlink('/temp/test.txt');
初めこうしたのですが、$this->webrootという変数があったので、
unlink($this->webroot . '/temp/test.txt');
こうしたのですが、
これでもだめでした。
No such file or directoryとエラーが出てしまいます。
0301nobodyさん
2007/06/27(水) 12:28:55ID:???適当なビューでecho $this->webroot;して試してみたらどお?
0302nobodyさん
2007/06/27(水) 12:45:14ID:5woCK0g1どういうことですか?コントローラからunlinkしたいんですが、、、
ためしにやってみましたが、
http://localhost/ 以下(コントローラ名含まず)が出力されました。
0303nobodyさん
2007/06/27(水) 12:58:04ID:xI/8M0tS鯖のOS変わるとプログラムの書き方も変わるんでしょうか?
0304nobodyさん
2007/06/27(水) 13:05:02ID:???unlinkの引数はURLじゃなくてパス。
システム内での実体のある絶対パスか相対パスを与える。
>>303
場合による
0305nobodyさん
2007/06/27(水) 13:42:59ID:5woCK0g1うーん、何度やっても同じエラーがでます。
具体的にどう書けばいいんでしょうか。。
0306nobodyさん
2007/06/27(水) 14:01:16ID:???$this->webrootに入ってるのは「http://localhost/以下」なんでしょ?
unlinkの引数はURLじゃなくてパスなんだから、$this->webrootをunlinkに
突っ込んでも無駄。
×unlink('http://localhost/hoge/temp/test.txt');
○unlink('/home/hoge/cake/app/webroot/temp/test.txt');
0307nobodyさん
2007/06/27(水) 15:13:03ID:5woCK0g1ご丁寧にありがとうございます。
ローカルとサーバでOSが違うので、相対パス(../../webroot/.......みたいな)にしました。
0308nobodyさん
2007/06/27(水) 16:06:07ID:???0309nobodyさん
2007/06/27(水) 18:10:43ID:???0310nobodyさん
2007/06/27(水) 20:12:38ID:???0311nobodyさん
2007/06/27(水) 22:00:42ID:???すべてのレベルのプログラマという名目だが、さすがにPHPの基礎くらいは出来てないとな。
0312sage
2007/06/28(木) 09:22:28ID:???ttp://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=550&forum=6
0313nobodyさん
2007/06/28(木) 16:45:47ID:b86P8EwS0314nobodyさん
2007/06/29(金) 01:42:18ID:???0315nobodyさん
2007/06/29(金) 11:03:28ID:???投稿記事を削除するときに、コメントも削除したいんですが、どう書くんでしょうか。
アソシエーションは機能しているので、関連して呼び出すことはできています。
0316nobodyさん
2007/06/29(金) 14:09:47ID:???0317nobodyさん
2007/06/29(金) 15:27:07ID:XE3VOI38相対指定じゃないといけないんでしょうか?よろしければコード例をお願いしたいです。。
0318nobodyさん
2007/06/29(金) 16:01:14ID:???0319nobodyさん
2007/06/29(金) 16:16:09ID:XE3VOI38やっぱビューからじゃアクセスできないみたいですね・・・。
せっかくtmpがあるのに、webroot以下にまたtmpディレクトリ作るのはちょっとやな感じですが、そうします。
0320nobodyさん
2007/06/29(金) 21:34:10ID:???>レベル低っ・・・・フレームワーク使う前に、ほかにやることありそう
0321nobodyさん
2007/06/30(土) 00:36:03ID:???君におススメ!
http://www.amazon.co.jp/Ethna%C3%97PHP-LL%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFBooks-%E8%97%A4%E6%9C%AC-%E7%9C%9F%E6%A8%B9-%E4%B8%80%E4%BA%95/dp/4774131393/ref=pd_bbs_sr_1/249-9902260-8715545?ie=UTF8&s=books&qid=1182839405&sr=8-1
0325nobodyさん
2007/07/02(月) 20:59:09ID:???0326nobodyさん
2007/07/02(月) 21:51:21ID:???本当に有難うございました。
0327nobodyさん
2007/07/03(火) 11:48:07ID:???レベルが低かろうがほっとけばいいのに。
0328nobodyさん
2007/07/03(火) 12:21:28ID:???0329nobodyさん
2007/07/03(火) 13:41:23ID:8i5o6UCU0330nobodyさん
2007/07/03(火) 14:06:51ID:???レイアウトを切り替えれば事が済むなら
自分で用意したAppControllerでコンストラクタをオーバーライドして
セッションの値によってlayout変数を切り替えればいいだろうし。
0331nobodyさん
2007/07/03(火) 15:31:24ID:???>手動でセッションをセットする
という意味がわからない。
0332nobodyさん
2007/07/03(火) 18:18:52ID:F4VpoSCGでもcakePHPでは無理です。
Ruby on Railsをつかいましょう。
0333nobodyさん
2007/07/04(水) 02:48:45ID:gN4ff124<?php if(isset($session->User)){ ?>
って普通にビューからコンポーネントにアクセスできるんですね。
自己解決しました。
>330
有難うございます
0334nobodyさん
2007/07/04(水) 05:14:32ID:gN4ff124var_dump($_COOKIE);
としても全部のクッキーが表示されないのはCakePHP1.1のせい?なんかやってる?
0335nobodyさん
2007/07/04(水) 10:10:25ID:???Cake通さなければ普通に表示される?
0336nobodyさん
2007/07/04(水) 21:48:23ID:???0337nobodyさん
2007/07/04(水) 22:10:12ID:???これか?読んでないんだが、一言で言うと何?
0338nobodyさん
2007/07/05(木) 00:53:35ID:???0340nobodyさん
2007/07/05(木) 04:42:53ID:???0341nobodyさん
2007/07/05(木) 09:02:47ID:???0342nobodyさん
2007/07/05(木) 17:37:10ID:???0343nobodyさん
2007/07/05(木) 19:23:19ID:???0344nobodyさん
2007/07/05(木) 21:33:11ID:???layoutの方で頭にRSS用のヘッダ吐くようにして。
0345344
2007/07/05(木) 21:33:49ID:???0346nobodyさん
2007/07/06(金) 04:07:26ID:???0348nobodyさん
2007/07/06(金) 10:41:52ID:???0349nobodyさん
2007/07/06(金) 14:15:24ID:???例えばDB(他は試してないけどpostgreSQL7.x 8.x)に
birthday DATE
って列があって、
cakePHP側ではビューに
$html->dateTimeOptionTag('Profile/birthday', 'YMD' , 'NONE', $html->tagValue('Profile/birthday'), array())
こんな感じでコントローラーに受け渡してしまえば、
コントローラーでは
$this->Profile->save($this->data)
これでサックリ、
と普通だったらそうなんですが、
何も選択してないままだとSQLに
birthday=''
を吐き出してしまって、DBからいつも
「DATE型やっちゅうのに何おまえ(空)文字入れようとしとんねん!」
と怒られるんです。
かといって誕生日なんて(システム的にどーでもいい)情報、NOT_EMPTYにできないし
仕方がないのでコントローラーでわざわざSQL書いたり、
空白だったら1970-1-1にしといて、ビュー側で1970-1-1だったらNULLと同じ扱いにする、
などなど、日時情報にイチイチぶさいくな事してるんだけど、
どこにも話題が無いって事は自分がぶさいくなだけで絶対
何かcakePHP的に合理的な方法があるはず!と思ってますが
ヒントだけでも誰か教えてください。
0350nobodyさん
2007/07/06(金) 14:24:20ID:???0351nobodyさん
2007/07/06(金) 15:05:44ID:???cake/controller/controller.phpにある
cleanUpFields
をコピペして
app_controller.phpに突っ込んで、
$this->params['data'][$modelName][$field['name'] . '_year']
$this->params['data'][$modelName][$field['name'] . '_month']
$this->params['data'][$modelName][$field['name'] . '_day']
などなど、
dateTimeOptionTagで生成されるパラメータのいずれかがemptyなら
$this->data[$modelName][$field['name']] = $newDate;
を発行しない、という処理を加えていくだけ。
独自でconfirm作ってる場合は、cleanUpFieldsかける前に
いずれかが空白(未選択)なら確認画面に戻す処理を書き加えても良いだけだし。
こんな小一時間考えればわかるような事に俺は…
お騒がせしました。
0352nobodyさん
2007/07/07(土) 01:33:20ID:r27wk2rh0353nobodyさん
2007/07/07(土) 10:59:23ID:???yamlで共通configファイルを作ってるけど。そこで変数やformの属性を全部定義してる。
0354nobodyさん
2007/07/07(土) 11:25:14ID:???hiddenに関してはループ処理でまとめられそうな気がするよ。
俺はserializeしてbase64してハッシュつけて1個のhiddenにつっこんだりしてる。改変も防げて便利便利〜。
まあそもそも入力項目が多いということはアプリケーションがそれだけ複雑ってことだ
0355nobodyさん
2007/07/07(土) 11:32:48ID:???そんな面倒なことしてなかったキガス
そんなことしてたらCake(FW)の意味ない品
0357nobodyさん
2007/07/07(土) 15:46:25ID:???0358nobodyさん
2007/07/07(土) 16:53:17ID:r27wk2rhyamlで共通configファイルを
>>354
俺はserializeしてbase64してハッシュつけて1個のhiddenに
おもしろいですね、ぜひ詳しく聞かせて欲しい
0359nobodyさん
2007/07/07(土) 18:39:04ID:???詳しくって、このまんまだと思うぞ。
0360nobodyさん
2007/07/07(土) 18:54:40ID:???name:←変数名
inputview:←入力form用view
form:input
size:30
....以下略
confirm:←確認form用view
form:hidden
table:
width:なんたら
とかやっておくだけ。
yamlで配列に取り込んでinput用viewの時には$array['name']['inputview']の定義を使って、formを描く。
confirmの場合は$array['name']['confirm']のを使う。
confirmの時のserialize云々は、>>359氏が言ってるようにそのまんまだとおもうけど
foreach($array as $key => $attrs) {
if( $attrs['confirm']['form'] =='hidden'){
$hiddenarray[$key] = post値;
}
}
とかしておいて、$hidden = base_64encode(serialize($hiddenarray));
あとは一つの hidden formに一括入れちゃえばいい。
ハッシュ付けたい時は $hidden .=ハッシュ値(お好みで設定)、とすればいいでしょ。
あとはwriteの時にハッシュをreplaceして、decode->unserialize。このときにも上のyamlの配列キーが使える。
0361nobodyさん
2007/07/08(日) 21:18:20ID:???ここ参考にして、ブログにコメント機能を実装してみたのですが。
一覧表示で、記事ごとにコメント数を表示させていて、
この方は記事についているコメントをcount関数を使っているみたいなんですが、
この方も言われているようにスマートではないと思うんです。
おそらくfindCountを使うんだと思いますが、どう書いたらいいか考えても思いつきません。
どなたかアドバイスいただけませんか。
0362nobodyさん
2007/07/09(月) 03:25:38ID:+2G34Por数秒メッセージを表示してリダイレクトって気持ち悪いので普通に$this->redirectでリダイレクトしてます。
なんか便利な使い方があるんでしょうか?
0363nobodyさん
2007/07/09(月) 04:31:27ID:???0365nobodyさん
2007/07/09(月) 08:44:28ID:ldZF+CQohttp://localhost/cake/tests/indexにアクセスするとページが見つからないって怒られます
<?
class TestsController extends AppController {
function index() {
}
}
?>
と書いたcake/app/controllers/tests_controller.php
とcake/app/views/tests/index.thtmlを配置しています
何が不足しているのでしょうか?
0366nobodyさん
2007/07/09(月) 09:03:09ID:???が必要かも。
0367365
2007/07/09(月) 10:39:41ID:???0368nobodyさん
2007/07/09(月) 12:59:15ID:???0370nobodyさん
2007/07/09(月) 14:22:07ID:???0371nobodyさん
2007/07/09(月) 14:35:38ID:???0372nobodyさん
2007/07/09(月) 14:39:41ID:???プログラマは悲しいことにそういうやつ多いよ。
0375nobodyさん
2007/07/09(月) 14:44:22ID:???0376nobodyさん
2007/07/09(月) 15:10:44ID:???0377nobodyさん
2007/07/09(月) 16:49:24ID:???0378365
2007/07/09(月) 17:09:44ID:???0379nobodyさん
2007/07/09(月) 17:37:23ID:???0380nobodyさん
2007/07/09(月) 17:39:36ID:???エラーメッセージを回答者に想像させといて適格な答えが得られる訳がない
(俺はエラーメッセージ書かれても答えられないけどな)
0381nobodyさん
2007/07/09(月) 18:01:13ID:???0382365
2007/07/09(月) 19:51:34ID:???>エラーメッセージを回答者に想像させといて適格な答えが得られる訳がない
(ファイルとして存在しない)URIからコントローラのアクションを要求しているんだから
CakePHPが処理しない限りはHTTP404 NotFoundエラーになる…はず
0383nobodyさん
2007/07/09(月) 20:16:13ID:???http://www.cakephp.jp/doc/installing.html
ここを全ページ5万回読み直してインストールから試してごらん。
正しく出来てるなら
http://localhost/cake/tests/index
だろうと
http://localhost/cake/hogehoge/unko
だろうと次に何すればいいか表示されるから
0384nobodyさん
2007/07/09(月) 20:44:27ID:???http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=614&forum=8
どこに書いても答えは同じだ!!
0385nobodyさん
2007/07/09(月) 20:48:16ID:???0386nobodyさん
2007/07/09(月) 20:50:24ID:???0387nobodyさん
2007/07/09(月) 21:23:33ID:???0388nobodyさん
2007/07/09(月) 21:56:46ID:???0389nobodyさん
2007/07/10(火) 05:24:47ID:???0390nobodyさん
2007/07/10(火) 09:04:44ID:???画面上にエラーが多数表示されるんですが
そういった場合に特定の処理を実行させるにはどのようにすればいいですか?
0391nobodyさん
2007/07/10(火) 12:54:59ID:???app/error.php というファイルを作って、ErrorHandler を extends した
AppError クラスを定義する。
ErrorHandler は cake/libs/error.php にある。
適当に missingController($params) やらをオーバーライドするなり
__construct からごっそりすげ替えるなりご自由に。
0393nobodyさん
2007/07/10(火) 18:11:20ID:???0394nobodyさん
2007/07/10(火) 21:36:20ID:???0396nobodyさん
2007/07/10(火) 22:50:28ID:???どういう設計にすればいいかなぁ?
0397nobodyさん
2007/07/10(火) 22:55:24ID:???0398nobodyさん
2007/07/10(火) 22:56:15ID:???0399nobodyさん
2007/07/11(水) 00:45:38ID:???テーブルの構造だったらスレ違い&板違いだよね
diffをとったものをガンガンレコードに追加すれば?
0401nobodyさん
2007/07/12(木) 11:23:56ID:???衝突が起きたときのマージのインターフェイスをちゃんとつくれば
分散wikiとか夢はひろがりますな.
0402nobodyさん
2007/07/12(木) 14:42:58ID:iLx7lYjZ0403nobodyさん
2007/07/12(木) 14:48:39ID:???0404nobodyさん
2007/07/12(木) 14:51:49ID:???MediaWikiのように、現在のページ(pageテーブル。ページ内容含まず)を
更新するたびにそのページのリビジョンテーブル(revisionテーブル)に
新しいリビジョンを追加し、そのリビジョンテーブルに関連した
テキストテーブルにデータを追加。
(そして表示するときは、その最新リビジョンを表示)
というのはscaffoldやbakeでさくっとできないの?
データベースレイアウト
http://www.mediawiki.org/wiki/Database
0405nobodyさん
2007/07/12(木) 15:03:54ID:???0406nobodyさん
2007/07/12(木) 15:10:09ID:???なんかCakePHPってモデル(テーブル)に直接書き込むのは
簡単だけど、モデルへの書き込み(Update)を追加(Insert)に
変更するのは面倒そうなんだよな。
具体的にいうと、Wikiのページを更新すると、
pageテーブルに上書き、
revisionテーブルに追加、
そのrevisionテーブルに追加した行に関連したtextテーブルに追加、
と三つのアクションになる。
そしてページを表示するときは、revisionの一番新しいのだけ表示。
これってスマートに実装できるんだろうか?
まあ、レールを脱線してがんばれば
どんなことだってできるだろうけど。
0407nobodyさん
2007/07/12(木) 15:46:25ID:???レコード追加時はidを空、レコード変更時は、あらかじめ変更するレコードの
idカラムを取得してセットしておく必要があるが、それ以上難しいことってある?
ごめ、俺、理解してないかも。
0408nobodyさん
2007/07/12(木) 15:49:03ID:???あとページ表示は単にpageテーブルからのデータで問題ないでしょ?revisionテーブル必要ない。
0409nobodyさん
2007/07/12(木) 16:00:45ID:???revisionとtextが1:1だったらtextテーブルの意味のほうが良く分からん
まあぶっちゃけpageテーブルだけでもいけるとは思うが
0410nobodyさん
2007/07/12(木) 21:15:19ID:???(MedhiaWikiは履歴の実装を見るために参考にしただけだから詳しくない)
revisionとtextがなんて分かれているかは知らないが、
MediaWikiでは分かれている。
0411nobodyさん
2007/07/12(木) 21:21:59ID:???まず、pageテーブルを編集する。
そこに履歴の仕組みを作りたい。
その方法として、pageテーブルから
バージョンごとで違う情報をrevisionテーブルに移動し、
そちらに格納する方法。(MediaWiki)
もう一つの方法として、pageテーブルはそのままで、
pageテーブルが更新されたら、履歴情報をhistoryテーブル
(フィールドはpageテーブルのフィールド+リビジョンID)に
追加しておく方法。
個人的には後者の方がCakePHPで素直に実装できそうな気がするが、
MediaWiki方式のほうに大きなメリットがあるだろうか?
0412nobodyさん
2007/07/12(木) 21:31:24ID:???revisionテーブルだけの修正ですむ。
(後者だと、pageテーブルとhistoryテーブルの二箇所を変更しないといけない)
後者のメリットとして、pageテーブルにはよく見るであろう最新データのみが
入っているため、履歴も含めてすべて同じテーブルに入っている前者よりも負荷が少なそう。
0413nobodyさん
2007/07/12(木) 23:37:35ID:???0414nobodyさん
2007/07/13(金) 10:06:11ID:???"Create an interactive production wiki using PHP"
http://www-128.ibm.com/developerworks/views/opensource/libraryview.jsp?search_by=production+Wiki+PHP
Wiki作成しながらCakePHP語るのもいいかもね。
0415nobodyさん
2007/07/13(金) 17:50:45ID:j8+9kyhU0416nobodyさん
2007/07/17(火) 11:51:36ID:c9LkXXMo0417nobodyさん
2007/07/17(火) 12:09:35ID:???そのレベルの人は身近に教えてくれる人を見つけることが先決。
それが無理なら「cakePHP 真っ白」とかでひたすらググろう。
0418nobodyさん
2007/07/17(火) 12:10:12ID:HxVHyr/E0419nobodyさん
2007/07/17(火) 12:33:26ID:???0420nobodyさん
2007/07/17(火) 14:55:40ID:???0421nobodyさん
2007/07/17(火) 15:58:57ID:???この中で使ってるPHPエディタのフォントを教えてください
0423nobodyさん
2007/07/17(火) 16:35:22ID:HxVHyr/EOSとエディタだよ
0424nobodyさん
2007/07/17(火) 17:04:38ID:???0425nobodyさん
2007/07/17(火) 17:34:38ID:???0426nobodyさん
2007/07/17(火) 17:53:03ID:???0427nobodyさん
2007/07/17(火) 18:58:20ID:???あるディレクトリ以下をcakephpに処理を任せることは可能?
0430nobodyさん
2007/07/17(火) 20:34:39ID:???最寄り駅まで徒歩2分
0431nobodyさん
2007/07/17(火) 22:16:46ID:???あと昼飯については、レシートだけで領収書代わりにしてくれる。
0432nobodyさん
2007/07/17(火) 23:44:04ID:???誰かうまくいったやついる?
0434432
2007/07/18(水) 10:34:40ID:XEakOCt8マウスとキーボードはhpのやつです。
0435nobodyさん
2007/07/18(水) 10:54:14ID:???0436nobodyさん
2007/07/18(水) 12:18:59ID:???0438nobodyさん
2007/07/18(水) 12:30:40ID:???0439nobodyさん
2007/07/18(水) 15:44:55ID:???0440nobodyさん
2007/07/18(水) 16:24:22ID:???http://techno.hippy.jp/rorwiki/?Wiki%A4%F2%BA%EE%A4%C3%A4%C6%A4%DF%A4%EB
ここに履歴保存とか、それをつかった衝突検知とか差分検出とかについてかいてあって参考になる。
railsだけど
0441nobodyさん
2007/07/18(水) 17:50:44ID:???0442nobodyさん
2007/07/18(水) 23:22:49ID:???画面が真っ白になるのは、基本的にインクルードファイルの文法ミスが原因
ローカル環境にPHPをインストールして、文法チェックに対応したエディタを使うといいよ。
0443nobodyさん
2007/07/19(木) 22:47:07ID:???いますよー。定期的に見てます。
リンク先よく読んで見ます。
でも、実は衝突検知とか差分検出とかは
あまり重要じゃなかったり。
というのも、作ろうとしているのは一人WIKIだから。
(しかもWIKI記法じゃないのでWIKIですらない?)
0444nobodyさん
2007/07/19(木) 23:00:14ID:???0446nobodyさん
2007/07/20(金) 01:47:56ID:???それが何か
まあ共有知じゃねーじゃんって意味では>>444のいいたいことも
わかるけどね
0447nobodyさん
2007/07/20(金) 09:40:35ID:???0448nobodyさん
2007/07/20(金) 10:05:33ID:???あとは個人用なら、独自タグにどんなのやつを採用するかぐらいだろうな。
ttp://www.michelf.com/projects/php-markdown/こういうのを乗っけるのはどうか。
0449nobodyさん
2007/07/20(金) 13:49:37ID:???0450444
2007/07/20(金) 22:25:08ID:???ぐぐったけど、こんなもんwikiじゃねーだろ
>>446
だったら、共有知実装なしのwikiなんかwikiって言うのがおかしいのはわかるよね。
0451nobodyさん
2007/07/20(金) 22:52:24ID:???0452nobodyさん
2007/07/21(土) 11:28:29ID:???0454nobodyさん
2007/07/21(土) 18:36:57ID:???0455nobodyさん
2007/07/21(土) 18:41:40ID:???一定の仕組みを指す言葉ってことでしょ
0456nobodyさん
2007/07/21(土) 18:46:10ID:???0457nobodyさん
2007/07/21(土) 18:48:55ID:???実はそれはwikiではなかったという顛末
0458nobodyさん
2007/07/21(土) 19:02:46ID:???wikiみたいなのを作りたいだったような
どっちでもいいか
0461nobodyさん
2007/07/21(土) 20:57:53ID:???wikiシステムが想定している利用ケースである、
「多人数による共有知の生成」
を満たすための仕様がwikiシステムの仕様であり、
そういう意味では衝突検知も差分検出もログイン認証も必要
なのではあるが、
じゃあMediaWikiをダウンロードしてきてローカルの開発用鯖に
インスコして一人で使ってたら、それはwikiとは言わないのか?
という話だからなあ。
しかも「wikiっぽいもの」って質問者が書いてるわけだし。
突っかかってる人は、どうしても「wiki」という語句の用法が気に入らないらしいけど。
つかこのスレは脱線しっぱなしだね・・おれもだねスマソ
0463nobodyさん
2007/07/22(日) 00:18:32ID:???0464nobodyさん
2007/07/22(日) 01:04:30ID:ktiR8O29名前が変わっちゃうんですか?w
一人で使っていても、使っているシステムはwikiだと思っていましたwww
0465nobodyさん
2007/07/22(日) 14:45:17ID:???昔からある概念だから
本当はBlogやBBSと同じ言葉の仲間なんだよな。
一人でローカルマシンで掲示板やってますって言ったら変だけど
wikiはなんかMediawikiやPukiwiki=wikiって風潮になってるから
あまり違和感は感じない。
みんなで書けて文をまとめられるなら、
今の大多数のwikiみたいに、wikipediaお手本にしたような
使いにくい糞仕様にしなくてもwikiはwikiなんだけどね。
でさ、そういった物も上手くユーザーインターフェース考えるだけで
Cakeならきっと簡単に作れるさ…って話を元に戻してみる。
0466nobodyさん
2007/07/23(月) 09:33:23ID:???0467nobodyさん
2007/07/23(月) 10:09:24ID:FD1gjjFA例えば今までのニュース表示用のnews.php、商品一覧を表示するitems.phpをそれぞれcakeに置き換えるような・・・
URLのrewriteが邪魔してうまくできない・・・
もしくは、infopathも使わないでcakeを使えると嬉しいんですが・・・
(index.php?url=controllerとかでいい)
0469nobodyさん
2007/07/24(火) 09:27:12ID:???0471nobodyさん
2007/07/24(火) 14:56:56ID:PrhqUAyS0472nobodyさん
2007/07/24(火) 15:06:01ID:???まともなプロジェクトならファイル一覧ぐらい作るんだから
それを提出すればいいだけ
0473nobodyさん
2007/07/24(火) 22:34:16ID:???/news/
ってことになりました、って言えば終わりじゃん
0474nobodyさん
2007/07/24(火) 23:02:23ID:???0475nobodyさん
2007/07/25(水) 00:01:30ID:???0476nobodyさん
2007/07/25(水) 00:05:16ID:Jxxvgntgマニュアル見ると引数が二つあるのにチュートリアルでは何も渡してない・・・だめp
0478nobodyさん
2007/07/25(水) 00:33:28ID:???0480nobodyさん
2007/07/26(木) 11:12:31ID:???Pawfalikiのソースコードを見て、自分でもwikiが作れるような気がしてきました。
↑PukiWikiよりシンプル?
http://opentechpress.jp/developer/07/04/20/0138252.shtml
Pawfaliki――1ファイル形式で運用可能な簡易wikiツール
0481nobodyさん
2007/07/26(木) 11:39:06ID:???ファイルベースのシンプルなwikiを再発明したいのですか?
だとすればなぜ「フレームワーク CakePHP」のスレッドに書き込むのでしょうか?
ファイルベースのシンプルなwikiを作るなら、cake使うのも使わないのも
手間も保守性もたいしてかわりませんよ
0482nobodyさん
2007/07/26(木) 19:32:06ID:???TinyMCEとかでWYSIWYG編集させろ
0483nobodyさん
2007/07/27(金) 17:25:54ID:sllST2Ydhoge/app/webroot/ みたいな構成でブラウザからhttp://localhost/hoge/img/cake.power.png とかやってもNot Foundになりますよね。
CakePHPで認証かけたサイトでスタティックなHTMLファイルを表示したいのですが……。
0484nobodyさん
2007/07/27(金) 17:29:23ID:???くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/
あたりで質問しなさい
0485nobodyさん
2007/07/27(金) 17:37:03ID:sllST2Yd僕ですよね?
基本なのか……。
誘導ありがとうございます。
そちらで聞いてみます。
0486nobodyさん
2007/07/29(日) 00:30:11ID:???0487名無しさん@そうだ選挙に行こう
2007/07/29(日) 18:14:49ID:???当方、今まで単機能な自作フレームワーク+Smartyを
使ってきましたが、CakePHPに興味を持ちましてCakePHP
のリファレンスガイドを一読しました。
そこで質問があります。
Q1.Smartyに対するCakePHPのアドバンテージはなんで
しょうか?
(リファレンスガイドを読んだだけなのでよくわかりません
でした)
Q2.リファレンスガイドには、DBの条件として、テーブル名
は英単語の複数形(customers, users)であること、主キー
のフィールド名は「id」という名であることなどなどの規約が
書いてあります。
CakePHPは、これに準拠したDBでないとNGなのでしょうか?
以上、教えてください。
よろしくお願い致します。
0488名無しさん@そうだ選挙に行こう
2007/07/29(日) 18:18:55ID:???> しょうか?
> (リファレンスガイドを読んだだけなのでよくわかりません
> でした)
Smartyを使わないですむ
> Q2.リファレンスガイドには、DBの条件として、テーブル名
> は英単語の複数形(customers, users)であること、主キー
> のフィールド名は「id」という名であることなどなどの規約が
> 書いてあります。
> CakePHPは、これに準拠したDBでないとNGなのでしょうか?
NGというわけではないが、別途modelでtable名やらprimary keyやら設定しないと
いけない。でもってその状態でbakeしようとするとえらい面倒なことになってかえって苦労
すると思われ。
0489名無しさん@そうだ選挙に行こう
2007/07/29(日) 18:49:36ID:???さっそくのレスありがとう。
Q1のレスについては・・・?・・・ですが、
Q2については、ちょっとガックリです。
既存のDBをWebで公開する開発なので、スキーマの定義を
変更するわけにはいかないのです。
参考になりました。ありがとう。
0490名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:00:21ID:???まだいるかどうかわかりませんが、
そういうニーズであればSymfonyの方に分があると思われ
以前、他人が設計したテーブル定義書に従って組もうとして
エラい目にあいました
bakeがモデル内のuseTableやPrimaryも適宜読み込みながら
CとVのスケルトンを作ってくれるとスゲー嬉しいんだけど・・・
0491名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:03:31ID:???生PHPを用いながらView Templeteの分離が出来る、という位の話
0492nobodyさん
2007/07/29(日) 23:11:27ID:???0ちなみに、cakeのDB規約に従わなくても、指定すればいいだけだわ。
cakeが何か分からないレベルならsmarty使っておけって話。
0493nobodyさん
2007/07/30(月) 07:05:58ID:???レスありがとう。
Smartyと比較して大きなメリットはないということで、
了解しました。
>>492
>>cakeが何か分からないレベルならsmarty使っておけって話。
貴方はCakePHPの開発者ですか?
0494nobodyさん
2007/07/30(月) 07:08:06ID:???貴方はCakePHP自体の開発者ですか?
それとも私と同じCakePHPの利用者ですか?
0495nobodyさん
2007/07/30(月) 07:16:07ID:???0496nobodyさん
2007/07/30(月) 08:23:34ID:???質問と受け取ったが。まいいや
0497nobodyさん
2007/07/30(月) 16:57:41ID:6iA0AE5fwebroot/files/ フォルダ内に hoge.csv ファイルを置きます。
そして、どのコントローラーからもこのhoge.csvを参照したいのですが、階層が変わると、パス
も変わってきてしまうので、どのようにすればよいのかわかりません。
絶対パス以外で何か良い方法はございませんでしょうか。
0498nobodyさん
2007/07/30(月) 17:35:24ID:6iA0AE5fecho file_get_contents(WWW_ROOT.'files/default.csv');
すいません、自己解決しました。
ありがとうございました。
0499nobodyさん
2007/07/30(月) 18:28:42ID:CIKT+2nj一票
0500nobodyさん
2007/07/30(月) 19:55:16ID:???0501nobodyさん
2007/07/30(月) 20:35:01ID:???0502nobodyさん
2007/07/30(月) 21:01:07ID:PrtzY/tUなんでそうなるのかな?
Cakeの一番の特徴そして何を考えて目指して作れたかも
わかってないやつに何をいっても無駄だけど
>それとも私と同じCakePHPの利用者ですか?
他人と自分のレベルは同じぐらいとか思ってんのかな?
0503nobodyさん
2007/07/30(月) 21:38:23ID:???ActiveRecordもどきってことか?
0504nobodyさん
2007/07/31(火) 01:49:57ID:/l30lqBPオブジェクトじゃなくて配列(ハッシュ)で扱うことにしちゃったあたりが良くも悪くもいかにもPHPって感じで最高
0505nobodyさん
2007/07/31(火) 14:24:36ID:???0506nobodyさん
2007/07/31(火) 17:56:15ID:???0507nobodyさん
2007/07/31(火) 18:40:29ID:???0509nobodyさん
2007/08/01(水) 11:55:09ID:k9tgerD3すごくしやすい
>>507
そうだね。rake最高
でもレンサバしかつかえない貧乏クライアントも少なくない
0510nobodyさん
2007/08/03(金) 01:55:22ID:???0511nobodyさん
2007/08/03(金) 18:06:49ID:RjyFibPYあるあr・・・ねー・・・・・あるあるwww
0512nobodyさん
2007/08/03(金) 20:41:54ID:???0513nobodyさん
2007/08/07(火) 17:46:44ID:???0514nobodyさん
2007/08/07(火) 21:46:06ID:???フォームでないGETパラメータの検証を行うにはどうやるのがいいかな?
例えばアドレスの後に必ず ?query=abc がついておかなければならず、
ついていない場合はエラーページへ飛ばすといった時はどうするのがベストかな?
0515nobodyさん
2007/08/07(火) 22:33:06ID:???/abc みたいな感じでコントローラメソッド以下のパラメータとして渡すのならcake的な処理で
0516nobodyさん
2007/08/08(水) 00:17:14ID:???そのやり方やとPATH_INFO形式のURLにならんかな?
http://hogehoge/コントローラ名/アクション名/パラメータ名
みたいな感じ。
普通は上記のような感じでいいんやけど(漏れの個人サイトなら↑のようにしてる)
絶対にクエリをつけて作成するようにと言われとります。
例えばmodelの中に
var $validate = array(
'query' => VALID_NOT_EMPTY,
);
とか書いて
http://hogehoge/コントローラ名/アクション名/?query=abc
でアクセスした場合はOK的なページが出て
http://hogehoge/コントローラ名/アクション名/
のように何もつけなかった場合はエラーページが出る
みたいなことが出来ればいいかなと思ってるんですがどうでしょう?
0517ディアルガvsパルキアvsダークライ!
2007/08/08(水) 10:48:22ID:uOpKgT+t僕、get の場合は強引にpostデータに置き換えてやってます。
-- コントローラーでの指定 --
$this->data['モデル名']['query'] = $_GET['query'];
$this->モデル名->set($this->data);
if($this->モデル名->validates()){
echo 'OK';
} else {
echo 'まいっちんぐー';
}
以上です。編集長。
0518nobodyさん
2007/08/08(水) 23:31:23ID:???特定ページにのみバリデーションする場合はそれでいけますた。 アリガト!!
で、もう一段階ランクアップなんやけどサイト全体にGETパラメータをつけた状態でアクセスさせ、
GETパラメータがついていなかったり値がおかしかった場合はエラーページ表示、といった具合にしたい。
とりあえずapp_model.php内に
var $validate = array(
'query' => '/^[\w]{1,20}$/',
);
function __construct()
{
parent::__construct(); ← Modelクラス内のコンストラクタを見ると
3つの引数があったけどここへはどのように入れればいいかな?
第一引数は$this->id,第二引数は$this->tableでいい気もするけど(違うかもw)
第三引数がワカンネ!
$this->data["query"] = $_GET["query"];
if($this->validates($this->data)){
echo "OK";
}else{
echo "まいっちんぐ〜";
}
}
一応、こんなふうに書けば動く事は動いたんですが
たぶん間違っていると思うのでサイト全体(そのプロジェクト全体)に対してバリデーションしたい場合は
どう書くのがベストなんかな?
ググってみたらCakePHPのおいしい食べ方とかCakePHP1.1系で1.2系のバリデーションを使う、とかに
引っ掛かったけどそれらしき事は掲載されてなかったなぁ。
0519nobodyさん
2007/08/09(木) 00:25:35ID:???だめだ記憶が曖昧だ
0520ディアルガvsパルキアvsダークライ!
2007/08/09(木) 11:19:54ID:Us13hVpD519さんの意見に賛成。
$this->data["query"] = $_GET["query"];
if($this->validates($this->data)){
echo "OK";
}else{
echo "まいっちんぐ〜";
}
の部分を cake/app_controller.php のbeforeFilter に書き込めばいいと思いますよ。
cakephp1.2のバリデーションはちょっと難しい正規表現ができるだけと解釈してます。
1.1に組み込んでますけど。
0521nobodyさん
2007/08/09(木) 21:56:58ID:???app_controller.phpで$this->validates($this->data)って出来るもんなんかな?
http://api.cakephp.org/class_controller.htmlを見てもvalidatesは掲載されていませんし
自分でapp_controller.phpのbeforeFilterにget_class_methods($this)って書いてもvalidatesは出てきません。
当然、$this->validates($this->data)って書けばvalidatesメソッドなんてねーヨ
っていうエラーが返ってきますがどうでしょう?
代わりにvalidateを書いてみましたがqueryに変な値を入れても0のままですた。
何か他にいい方法、もしくは打開策があればよろしくです。
0522nobodyさん
2007/08/09(木) 22:59:14ID:???$this->Getquery->validates(ry
0523nobodyさん
2007/08/10(金) 09:12:34ID:???例えばモデルで取得した結果をコントローラを経由せずにビューへ送るとか
0524nobodyさん
2007/08/10(金) 09:45:50ID:???そういうことやるならMVCなフレームワークは使わない方がいい。
ちなみにModel内にcontrollerの参照があったような気がするから
それを経由して->setすればいいんじゃないか。
無かったらスマン。
0525nobodyさん
2007/08/10(金) 15:19:43ID:aNBvC55h0527nobodyさん
2007/08/11(土) 08:57:01ID:???app_controller.phpからapp_model.phpに書いてる関数を取得する方法はありませんか?
0528nobodyさん
2007/08/11(土) 09:39:30ID:???0529nobodyさん
2007/08/11(土) 10:10:05ID:???例えばapp_model.phpに
function test(){
print "testだぉ";
}
と書いて、それを例えば$this->test()とかで呼んでapp_controller.phpで表示、取得する方法はないか?
ってところ。
0530nobodyさん
2007/08/11(土) 16:05:23ID:???PHPの言語仕様を学びなおせ
0531nobodyさん
2007/08/11(土) 16:13:23ID:???>>530
>>529の何を指して意味不明って言ってるのかが意味不明。
0532nobodyさん
2007/08/11(土) 17:57:51ID:???0533nobodyさん
2007/08/11(土) 20:44:21ID:???Unkoモデル作成
Unkoモデルはapp_modelを継承してるので
testメソッドが呼び出せる
以下、app_controllerにて
$uses = array('Unko');
でUnkoモデル使用を宣言
$this->Unko->test();
でいいんじゃね
もっといけてるやりかたあったら教えてください
0534nobodyさん
2007/08/12(日) 00:54:40ID:???おまえ、アホだろ?
最初は>>529がアホかと思ったけどw
もっと違うところで意味不明って言ってるのかと思ってた
>>例えば$this->test()とかで呼んで
って書いてあるんやから例えに決まってるじゃんw
app_controllerに$this->test()って書いてapp_modelに書いたtestメソッドが呼べたら怖いわ
>>533
まぁ、普通はそう書くわな〜。
それ以上にいけてるやり方ってあんの?
0535nobodyさん
2007/08/12(日) 03:18:11ID:???0536nobodyさん
2007/08/12(日) 12:28:06ID:???0537533
2007/08/12(日) 15:00:07ID:???に、クソクソ言われるクソスレになってしまって、
本当に申し訳ございません。
0538nobodyさん
2007/08/12(日) 20:31:55ID:???同じCakeの利用者なんだから。
0539nobodyさん
2007/08/14(火) 00:50:00ID:???0540nobodyさん
2007/08/14(火) 10:28:20ID:???http://www.akelos.org/
0541nobodyさん
2007/08/14(火) 10:50:49ID:???【PHP】フレームワークについて語るスレ7【総合】
http://pc11.2ch.net/test/read.cgi/php/1181350116/
0542nobodyさん
2007/08/14(火) 17:06:01ID:???1から始まる連番をスマートに表示したいんだけど、
何かcake側で用意されていたりする?
0543nobodyさん
2007/08/14(火) 22:03:21ID:???0544542
2007/08/14(火) 23:15:30ID:???そっか、ありがとう。
まだcake始めたばっかりだから、どこまで出来て、どこから出来ないのか
さっぱり見当がつかないよ。
ドキュメント読み込み中。
0545nobodyさん
2007/08/14(火) 23:39:39ID:???0546nobodyさん
2007/08/15(水) 01:57:43ID:???普通に書いてもたいした手間じゃないでしょww
0547nobodyさん
2007/08/15(水) 20:08:24ID:???0548nobodyさん
2007/08/15(水) 20:28:02ID:???0549nobodyさん
2007/08/16(木) 02:18:59ID:???0550nobodyさん
2007/08/16(木) 15:04:16ID:NGPKl3TM0551ディアルガvsパルキアvsダークライ!
2007/08/16(木) 15:59:02ID:b8gDKmLD1.2のベータってことでしょ。
1.2のアルファはもう出てるから。
アルファ版とベータ版の違いを調べてから笑った方がいいかもね。
0552nobodyさん
2007/08/16(木) 16:01:00ID:NGPKl3TMアルファとかベータとか、それがなんかあったのか?(笑)
0553nobodyさん
2007/08/16(木) 17:52:42ID:???0554nobodyさん
2007/08/17(金) 15:54:42ID:???【PHP】フレームワーク Akelos
http://pc11.2ch.net/test/read.cgi/php/1187333485/l50
0555nobodyさん
2007/08/17(金) 21:27:42ID:kJTYbdA8商品の検索などは非SSL、商品の購入時にはSSLと
非SSLとSSLをまたぐシステムがあります。
その場合の注意点として以下の記事を読みました。
http://kinshachi.ddo.jp/kurage/html/MT/comp/archives/000272.html
>
> 2つのcookieを使ってセッション追跡する
>
> ランダムに生成するセッションIDを、「secure 属性なし」のcookie(仮に名前を「session-id」)と「secure 属性付き」のcookie(仮に名前を「secure-session-id」)の2つ発行する。
> 2つのcookieはhttps://のアクセスでログインが成功したタイミングで発行し、どちらのセッションIDからでもユーザを特定できるようにしておく。
> SSLで保護すべき画面に http:// でアクセスできると、盗聴で盗み出した「secure 属性なし」のcookieを使って、重要情報にアクセスできてしまいます。
> そのため、SSLで保護すべき画面に対してhttp:// でアクセスできないようにする必要があります。
安全のためには上のようなことをしないといけないようなのですが、CakePHPではこれが
標準でサポート、もしくは簡単に実装できるような仕組みになっているのでしょうか?
0556nobodyさん
2007/08/17(金) 21:39:14ID:???0557nobodyさん
2007/08/17(金) 21:53:07ID:???0558nobodyさん
2007/08/17(金) 22:10:36ID:???0559nobodyさん
2007/08/17(金) 22:12:06ID:???なんでもいいから簡単に実現したいなら
サイト全体をSSLでしかアクセスできないようにすればいい。
0560nobodyさん
2007/08/17(金) 22:19:36ID:???サイト全体がSSLになっているオンラインショップは皆無。
そういう、ありえない解決策は、提案しても意味がない。
0561nobodyさん
2007/08/17(金) 22:20:38ID:???書いていないので、わからなくても普通。
反論しますか? なら証拠を。
まあ結果は見えていますからレスしなくていいです。
0563nobodyさん
2007/08/17(金) 22:30:13ID:???あなたの言い方は、それ以外だと全体がSSLではいと認めているようなものです。
0564nobodyさん
2007/08/17(金) 22:33:28ID:???探せばいくらでもあるよw
横浜そごう
https://www2.sogo-gogo.com/wsc-customer-app/page/511/dynamic/top/Top
0565nobodyさん
2007/08/17(金) 22:34:10ID:???https://www.beatport.com/
0566nobodyさん
2007/08/17(金) 22:38:46ID:???https://www.web171.jp/
0567nobodyさん
2007/08/17(金) 22:46:31ID:???× インターネットバンクのサイトだと
○ インターネットバンクのサイトだと
皆無というから反例をあげてるだけでしょ。
0569nobodyさん
2007/08/17(金) 22:56:46ID:???えーと。それは笑えば良いのか?w
httpsといいながら、httpでもアクセスできる。
どこからか経由(たとえば検索エンジン)でhttpでアクセスして
その状態でメール・パスワード入れたら、盗聴される。
まあ、たしかにセキュリティが弱いサイトはあるだろうねwww
0570nobodyさん
2007/08/17(金) 23:03:44ID:???その理由がわかる人は、サイト全体をSSLにしろとはいわないね。
0571nobodyさん
2007/08/17(金) 23:06:11ID:???全体をSSLにしろなんてどこに書いてあるんだ?
0572nobodyさん
2007/08/17(金) 23:07:34ID:???嘘は良くないだろ。
別に「SSLのみにしなさい」なんて一度も言ってない。
0573nobodyさん
2007/08/17(金) 23:09:39ID:???そっちが一般的だろ。
0575nobodyさん
2007/08/17(金) 23:11:09ID:???考慮されてないんじゃないのかな?
ドキュメントにも記述されてないし。
0576nobodyさん
2007/08/17(金) 23:18:22ID:???実際そういうサイトがクライアントに納品されるのをこの目で見てるしw
0577nobodyさん
2007/08/17(金) 23:23:54ID:EqsPdypkSSL限定でもいいんじゃね?って話になっちゃうんだよねえ。
それでいいならその方が実装楽だし。
0578nobodyさん
2007/08/17(金) 23:26:18ID:???0579nobodyさん
2007/08/18(土) 03:13:03ID:???ttp://www.jumperz.net/was.jsp
の5章セッション管理「HTTPとHTTPSが共存する場合のセッション管理」
に対策らしきものはかいてある。
Cakeに限らずそのあたり対策を実装しているフレームワークってあるの?
0580nobodyさん
2007/08/18(土) 03:29:47ID:???httpとhttpsが共存しています。
有名どころでhttps限定なんてサイト見たことがありません。
0581nobodyさん
2007/08/18(土) 08:20:23ID:???0583nobodyさん
2007/08/18(土) 09:51:18ID:???http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=123&forum=3&move=prev&topic_time=1162418620
0584nobodyさん
2007/08/18(土) 10:09:37ID:???そのリンク先のリンク先を見ると、
SSLActionsで指定されたページをSSLページにするような
コードが掲載されているようだね。
つまり、CakePHPにはそういう機能が無いということになるのか。
単にhttpsのアドレスにリダイレクトしているだけみたいだけど、
ちゃんとセッションの引継ぎと>>555で示された
2つのcookieを使ったセキュアな移動をしているのか?
0585nobodyさん
2007/08/19(日) 00:48:53ID:SGQG+hwqたいした量のコードにならないから自分で書いてみればいいんじゃないの。
secureな方のcookieにhttpのsession id情報持たせておけば基本的に終わりじゃん
0586nobodyさん
2007/08/19(日) 09:08:19ID:???0587nobodyさん
2007/08/19(日) 12:03:31ID:???> secureな方のcookieにhttpのsession id情報持たせておけば基本的に終わりじゃん
違うぞ。セキュリティの勉強をしたほうがいい。
Amazonとかみればわかるように、商品をカートに入れるまではhttp
そのあと会計時はhttps。つまり一連の処理がhttpsだけで完結する処理ではない。
セキュアな方のクッキーにセッションIDを持たせた場合、
それをhttpで送ると盗聴されセッションハイジャックできてしまう。
だからhttp用ととhttps用と二つのセッションIDを使用することになる。
そしてサーバー内でその二つを紐付けしておかなければならない。
もちろんhttp用セッションIDは盗聴される可能性があるから
それを奪われても、その情報だけからhttps用セッションIDを取得できてはいけない
こういう複雑で汎用的な仕組みは、フレームワークレベルで実装されるべきものだ。
0589nobodyさん
2007/08/19(日) 15:10:14ID:TluxcOv3はあ?セッションidが別なの前提で書いてるのだが?
全然難しくないだろ。お前が勉強しろ
0591nobodyさん
2007/08/20(月) 00:21:09ID:???0592nobodyさん
2007/08/20(月) 00:27:51ID:???0593nobodyさん
2007/08/20(月) 00:28:08ID:???0594nobodyさん
2007/08/20(月) 00:31:32ID:???0595nobodyさん
2007/08/20(月) 00:41:36ID:???>Amazonとかみればわかるように、
別にAmazonは cookie専用じゃないよ。
0596nobodyさん
2007/08/20(月) 01:01:34ID:???たったいま
http://cakephp.org/screencasts/view/3
を見たんだが、Editが追加になってるし、最後AllDoneって言ってる割にindex.thtmlの中に/blog/へのリンクが残ったままとか問題ありまくりなんだが、これ公式なのか?
0598nobodyさん
2007/08/20(月) 04:19:47ID:???0599nobodyさん
2007/08/21(火) 00:38:42ID:jv21ywgR0600nobodyさん
2007/08/21(火) 22:50:35ID:???0602nobodyさん
2007/08/22(水) 00:38:46ID:???レン鯖の自分のスペースに置いて使えたり…する?
0603nobodyさん
2007/08/22(水) 01:30:49ID:???0604nobodyさん
2007/08/22(水) 19:44:09ID:???0605nobodyさん
2007/08/22(水) 19:57:55ID:HCjV3CA10607nobodyさん
2007/08/24(金) 11:52:50ID:???パッと見てみたが、
>Editが追加になってるし
addではなく、ちゃんとeditになっているようだけど。
>index.thtmlの中に/blog/
ルートが/blog/なので無問題。
0608nobodyさん
2007/08/25(土) 20:52:05ID:???内容は読んでないよう。
http://www.amazon.co.jp/dp/4896273567
0609nobodyさん
2007/08/27(月) 01:15:59ID:???その本どうしようかなぁ?
マニュアルのコピペとか言われてるけど
漏れがちょうど習得したいフレームワークはその3つやし
購入しようかどうかカナーリ迷う。
特にsymfonyはわかりやすい日本語マニュアルが少なく
他のフレームワークに比べて出来る事も多いが異常なまでにランニングコストが高いから
コピペでもわかりやすく書いてれば非常に助かるんだがね。
0610nobodyさん
2007/08/27(月) 03:02:22ID:???0613nobodyさん
2007/08/27(月) 11:02:16ID:???0614nobodyさん
2007/08/27(月) 11:03:59ID:???結構いい本だよ。日本語資料は少ないからね。
0616nobodyさん
2007/08/27(月) 16:22:48ID:ijRbnoqfモジュールを作る作業のみ。
OOPしてぇなぁ。
でもこの快感(フレームワークでの開発)を覚えると、めんどうなんだよな。はぁ。
0617nobodyさん
2007/08/27(月) 18:03:28ID:???0618nobodyさん
2007/08/27(月) 18:05:08ID:???0619nobodyさん
2007/08/27(月) 18:09:56ID:???0621nobodyさん
2007/08/27(月) 18:13:52ID:???0622nobodyさん
2007/08/27(月) 18:14:42ID:???だってさ、ビジネスロジックなんて単純な作業の塊だぜ?
継承とか使わないとやれない作業なんて存在しないよ。
オブジェクト指向なJavaだってさ、継承ごてごてで
使いづらくなったEJBを改め、POJOといって
継承を使わない(必須ではない)ただのクラスを使い始めた。
それでいいんだよ。シンプルでわかりやすい。
というわけで、OOPはフレームワーク自体を作るものだと思っています。
0623nobodyさん
2007/08/27(月) 18:45:34ID:???結論:たいていの場合、OOPはフレームワーク自体を作るものである。
0624nobodyさん
2007/08/27(月) 19:04:08ID:???0625nobodyさん
2007/08/27(月) 19:32:33ID:???0626nobodyさん
2007/08/27(月) 19:34:09ID:???それは突き詰めると型あり言語というものは
そういうものだからということになるんじゃないかな?
型あり言語の場合、コンパイル時に名前解決しちゃうから
名前間違いによるバグをコンパイル時に発見できる。
そして速いというメリットがある。そしてJavaは型あり言語。
その型あり言語の通常のやり方でやると、Controllerを作ろうとした場合
index,add,edit,viewなどの関数は基底クラスもしくはインターフェースを
オーバーライドすれば良いけど、そのほかの独自の名前の関数はフレームワークは
知らないから呼び出せない。それを呼び出すためにフレームワークに知らせる必要がある。
そのための処理や設定XMLファイルが・・・という感じなのだろう。
POJOはリフレクションという機能(関数群)を使ってオブジェクトにある関数を調べて
それを呼び出すことで継承なしに上手いことやっているわけだけど、
それは型あり言語のメリット(コンパイル時にバグ発見、速い)に反するものだった。
リフレクションはどちらかといったら開発・デバッグのための関数であり、
それを通常の処理に使用するという考えは長いこと禁断のテクニックだった気がする。
0627nobodyさん
2007/08/27(月) 20:30:28ID:???0628nobodyさん
2007/08/27(月) 20:55:57ID:???当然お前の負けだろうなw
0629nobodyさん
2007/08/27(月) 20:56:37ID:???0632nobodyさん
2007/08/27(月) 22:13:05ID:???もまえらオナニーでもしたのかい?
0633nobodyさん
2007/08/28(火) 02:04:49ID:???0635nobodyさん
2007/08/28(火) 02:37:25ID:???0636nobodyさん
2007/08/28(火) 09:03:23ID:???0637nobodyさん
2007/08/28(火) 12:42:40ID:???ぶっちゃけ、CakePHPは、難しいと思ってましたが、やっぱり難しいです。orz
0638nobodyさん
2007/08/28(火) 12:49:12ID:???一回慣れちゃえばいいんだろうけど、次の案件でまた使わない、で忘れる。
0639nobodyさん
2007/08/29(水) 11:47:30ID:???「難しいからできない」っていうのは、先入観とかでとっつきが悪いのが大半なんだろう
0640nobodyさん
2007/08/29(水) 12:31:12ID:???function beforeFilter()
{
$this->checkSession();
}
あれ、今日は、動く。 なぜだろう?
0642nobodyさん
2007/08/29(水) 14:16:01ID:???のような場合、
findAllなどのconditionにはどのような配列を書けばいいのでしょうか?
array('name' => 'like '.$word1,'name' => 'like '.$word2)
だと当然のように配列は上書きされてしまいます。
宜しくお願いします
0643nobodyさん
2007/08/29(水) 14:25:29ID:???http://api.cakephp.org/class_model.html#63ade7d3c6d03c83ab53a224e23ad9dd
Parameters:
mixed $conditions SQL conditions as a string or as an array
0644nobodyさん
2007/08/29(水) 14:48:27ID:???findAll("name LIKE $word1 AND name LIKE $word2")
と書いて良いと言う事ですよね。
ありがとうございました。
0645nobodyさん
2007/08/29(水) 16:08:03ID:???テーブルAに対してhasOneで定義したテーブルBと
テーブルBに対してbelongsToで定義したテーブルCがあるときに、
$this->テーブルA->findAll("テーブルA.name LIKE $word OR テーブルC.name LIKE $word")
のように一括では取得はできないのでしょうか?
これで作成されるSQLを確認すると、テーブルCがJOINされていないようです。
0646nobodyさん
2007/08/29(水) 16:10:52ID:???0647nobodyさん
2007/08/29(水) 16:37:13ID:???http://www.amazon.co.jp/dp/4896273567
のレビュー。CakePHPのところしかよんでない。約120ページ
CakePHP 1.2.0.5146alphaが対象
なんでもそうな気がするが、すでにガシガシやっている人には必要ない。
内容はわかりやすく広く説明している感じかな。
同作者(佐久嶋ひろみ さん)による別の本、「JavaScriptを書かないAjax」でも
書いているAjaxヘルパーの説明が多め(約30ページ)
1.2対象なのでFormヘルパーについて説明してある。(1.1ではHtmlヘルパーでやってた)
ほんの8ページだが、Formヘルパーでこんなコードを書くと、こんなHTMLが生成され、
POSTするとこういうデータが送られるって説明が良かった。
あとはHtmlヘルパー3ページ
0648nobodyさん
2007/08/29(水) 16:38:25ID:???postConditionsメソッドを知った。便利そう。
ってCakePHPの公式リファレンス(の日本語版)にものってるじゃん。見落としてたwww
scaffoldの説明は少ない。scaffoldマジックはネットで見てあきてるので
これはこれでいいかと。
アソシエートの説明が・・・ない!? いやまさかな・・・ゴクリ
しょっぱなから$useTable=falseで進めていくし、ひろみちゃんデータベース嫌いだろ?w
まあ、データベース使わないphpスクリプト作ってる人向けということで・・・
bake.phpのメッセージを解説している。英語が苦手ならどうぞ。
Validationの説明はあるのだが、1.2から強化された内容、
ユーザー定義のバリデーションの説明は(たぶん)無い。残念。
アクセス制限は独自DBを使った簡易なもの。ACLコンポーネントを使っていない。
サニタイズ・セッション・キャッシュ・コンポーネント・プラグイン・エレメントの
説明が数ページずつ。
最後に、間違っていたらごめんよ。
0649nobodyさん
2007/08/29(水) 16:59:03ID:???失礼しました。
今回は
$this->テーブルB->findAll("テーブルC.name LIKE $word")
$this->テーブルA->findAll("テーブルA.name LIKE $word OR テーブルB.id IN $id")
と2回問い合わせることにします。
0650nobodyさん
2007/08/29(水) 17:32:51ID:???recursiveで設定するんじゃないのか?
まだ使ったこと無いけど
それから、その書き方じゃSQLインジェクションの
脆弱性になるんじゃないのか?まだ検証して無いけど
0651nobodyさん
2007/08/30(木) 00:25:48ID:???手前味噌で申し訳ないですが
http://hogepiyo.net/archives/25
何かツッコミあったらお願いします
0652nobodyさん
2007/08/31(金) 18:22:39ID:7m08yu49test.thtmlは blog/posts/index で呼ばれて出力してるのですが、
test.thtmlの中のindex.thtml部分が呼び出される部分にエラーがでます。
Notice: Undefined variable: posts in C:\xampp\htdocs\blog\app\views\posts\index.thtml on line 14
14 <?php foreach ($posts as $post): ?>
どうすれば出力されるでしょうか?
0653652
2007/08/31(金) 18:26:08ID:???index.thtml は、views/posts/ の中に置いてるファイルです。
0654nobodyさん
2007/08/31(金) 18:51:11ID:???そのスコープにないんだろ
それ以上はソースを見ないとそれだけの情報では分からん
0655652
2007/08/31(金) 19:43:09ID:???■controllers/posts_controller.php
function index()
{
$this->render('index','test');
$this->pageTitle = 'Postsのindexの表示';
$this->set('posts', $this->Post->findAll());
}
■views/layout/test.thtml
<?php echo $content_for_layout ?>
こんな感じで、内容はチュートリアルのに追記して、実験をしています。
よろしくおねがいします。
0656nobodyさん
2007/08/31(金) 20:18:39ID:???0658nobodyさん
2007/09/04(火) 11:58:33ID:???id,name,pass,last_login_date
※last_login_dateは、このユーザーが最後にログインした日。
こういうユーザー情報設定画面Viewがあったとしてさ、
name:[ ]
pass:[ ]
last_login_dateはユーザーが最後にログインした日を
記録するわけだから、ユーザーがデータを入力するわけじゃなく
システムが入れるわけなんだけどさ、
コントローラでのセーブがこういう風になっていた場合さ、
$this->User->save($this->data)
ユーザーがHTMLを改ざんしてlast_login_dateを
送り込んできたら、やっぱりlast_login_dateは修正できちゃうよな・・・?
そういう場合どうすんの? $this->dataから
last_login_dateにあたる変数をunsetすればいい?
ユーザーがHTMLを改ざんして違うidを送り込んでくることもあるから
そこら辺のチェックも必要だよな・・・。
0659nobodyさん
2007/09/04(火) 12:56:26ID:???その画面で必要な項目だけをdataにひとつずつ入れてsaveするように書けば
それ以外の項目は修正できないし。
0660nobodyさん
2007/09/04(火) 12:59:46ID:???0661nobodyさん
2007/09/04(火) 13:41:52ID:???そりゃそうなんだけど、bakeでできるのがこういうコードだし。
>>660
なるほど、そんな引数があったのね。
0662nobodyさん
2007/09/04(火) 14:43:45ID:???またそのテーブルがどんなフィールドを持っているかを調べる方法、
SQLを直接発行する以外にありますか?
たとえばMySQLの場合DESCRIBEでわかるのですが、
これだとMySQLに依存してしまいますし、
CakePHPで共通に使えるやり方があるかもと思って質問しました。
0663nobodyさん
2007/09/04(火) 15:22:54ID:???メタデータ取得の仕方はDBによってまちまち
DESCRIBEのようなカラム情報取得の抽象化だけなら
わりとサポートしてるDBのライブラリは多いが
CRUDのSQL+カラム情報取得以外の
DBのschema操作まで抽象化したライブラリってのはあまりない
PEARのMDB2ならそういう操作を抽象化した
モジュールがあるのでその要件は満たせると思う
cakeは使ってないので知らん
0664nobodyさん
2007/09/04(火) 15:35:07ID:???http://api.cakephp.org/class_model.html#9da1765e8d0756853d5e66b5c4e18159
0665nobodyさん
2007/09/04(火) 16:44:44ID:???> CRUDのSQL+カラム情報取得以外の
> DBのschema操作まで抽象化したライブラリってのはあまりない
でもbake.phpでは、データベースで定義されたテーブル情報から
どのテーブルのModelを作成しますか?って聞くわけで
方法あると思うんだけど。
>>664
それはモデルのAPIでしょ?
モデルで使っているテーブルの情報なら取れるかもしれないけど、
ほしいのはデータベースにどんなテーブルがあるかなんですよね。
0666nobodyさん
2007/09/04(火) 16:58:16ID:???を知りたいとお前が言ったから答えたまでだが。
自分で言ったことも忘れたのか?
0667nobodyさん
2007/09/04(火) 17:12:20ID:???0668663
2007/09/04(火) 17:48:54ID:???今cakeのソース落としてきて少し眺めたけど
libs/model/dbo以下の各DB毎のdriverのlistSourcesメソッドで
それぞれのDBのやり方でテーブル一覧を取得してる
何か共通の方法でDBからテーブル一覧を取得してるわけじゃなく
各々DB毎の実装を行ってAPIだけ統一、抽象化している
てか方法があろうとなかろうと
少しソース見りゃわかるような質問しといて
答えてる人に自分の思い込みだけで
別の方法があるんじゃないかとかそれじゃないとか
一体おまえ何様だよ
0669nobodyさん
2007/09/04(火) 18:41:53ID:???CakePHPの機能でデータベースにあるテーブル名の一覧を
とってくる方法聞いただけじゃん。
> 各々DB毎の実装を行ってAPIだけ統一、抽象化している
そりゃそうだ。データベースごとに命令違うのわかってるって。
その統一APIがなにか聞いただけ。
結論言えば、ConnectionManagerつかって
データソース取得してlistSourcesでしょ?
かきこした後、すぐソース見たよ。
自分で調べるのと聞いて調べるののどちらが速いかわからないから、
とりあえず質問しといただけじゃん。
情報が共有されて一石二鳥w
0671nobodyさん
2007/09/05(水) 01:29:26ID:???運がよければ、誰かが答えてくれる。
「自分で調べる」よりも「自分で調べる」+「誰かに聞く」の方が優れている。
使えるものは、使わなきゃねw
0672nobodyさん
2007/09/05(水) 09:23:21ID:???0673nobodyさん
2007/09/05(水) 16:05:13ID:???0674nobodyさん
2007/09/06(木) 00:52:29ID:???すごいというか動きが良くわからない。
なんで$form->input("data")って書くだけで、
データを持ってこれるんだ?
どのモデルを使うとかどこで指定してるんだ?
なんで書き方同じなのに勝手にチェックボックスとかリストボックスとかになるんだ?
$form->inputって一体全体どんな機能を持った関数なんだ?
わけわかんねぇ。使いこなせる自信がないorz
0675nobodyさん
2007/09/06(木) 00:57:00ID:???0676nobodyさん
2007/09/06(木) 01:07:41ID:???$form->inputでドロップダウンリストがでてくるんだけど、
これをラジオボタンにすることってできるの?
当然、そのときの選択項目はドロップダウンリストと同じ内容で。
0677nobodyさん
2007/09/06(木) 01:18:01ID:???ひどいなぁ。APIマニュアルみたけど使い方ちゃんと書いてないんだよ。
第一引数はいいとして、第二引数。 $options という配列を入れられるとは書いてあるが
具体的どんなキーのオプションが使えるのか書いてないじゃん・・・。
form.phpのソースコードみた? 単純に引数に対するタグを出力してるだけじゃなく、
データベース情報を参照していろいろやってるから把握するのに時間かかるし。
0678nobodyさん
2007/09/06(木) 08:50:46ID:???0679名無しさん@Vim%Chalice
2007/09/06(木) 11:45:44ID:3VBce1udこ れ は ひ ど い。
本当にソース見たのか?
…と思ったけど、今気分いいから
$optionsの中身をメモっといてあげる。
$options['type'](string)…以下から選べ(後は自分で何とかしろ)
hidden checkbox radio text password file select time date datetime textarea
$options['label'](string)…フォームの前にラベルを付ける。
$options['before'](string)…ラベルの前に任意のHTML
$options['after'](string)…フォームの後に任意のHTML
$options['div'](boolean)…フォームをdivで括るか
$options['inbetween'](string)…radioの間に挿入するHTML
$options['selected'](string)…selectの初期値
$options['options'](string)…$html->radio()の第二引数
$options['empty'](boolean)…falseにするとselectboxで空白が選べるようになる
まだいくつかあったと思う。補完よろ
0680nobodyさん
2007/09/06(木) 11:56:52ID:???運がよければ、誰かが答えてくれる。
「自分で調べる」よりも「自分で調べる」+「誰かに聞く」の方が優れている。
使えるものは、使わなきゃねw
0681名無しさん@Vim%Chalice
2007/09/06(木) 11:57:46ID:???$options['empty'](boolean)…trueにするとselectboxで空白が選べるようになる
だった、すまん
あと$options['value']とか
$options['between']とかがあったような。
0682nobodyさん
2007/09/06(木) 12:02:53ID:???引数多いんだね。
単に<inputタグの属性に展開されるだけかと思ったが、
emptyとか関係ないものもあるし。
どっかで見ただけで試していないがlabelを消すときは''とかではなく、
falseにするらしい。
inputのドキュメントって無いのかな?
0683nobodyさん
2007/09/06(木) 12:24:42ID:???ソース読んで無いので間違っていたら修正よろしくw
使用するテーブルは直前の$form->createで指定したmodel。
つまり$form->createはタグを出力するだけでなく副作用がある
($formの状態を変化させる)
# ↑なんか気持ち悪い仕様だなぁ。こうすればいいのに。
# $form1 = $form->create('・・・');
# echo $form1->begin(); //formタグ開始
# echo $form1->input();
# echo $form1->end(); //formタグ終了
$form1->inputで出力されるタグの種類(textとかcheckboxとか)は
データベースの型やアソシエーションから自動選択(?)
具体的にデータベースの型が何のときに
どういうタグが出力させるかは、後の人よろしくw
0685nobodyさん
2007/09/06(木) 14:29:19ID:???0686nobodyさん
2007/09/06(木) 16:08:21ID:???0687名無しさん@Vim%Chalice
2007/09/06(木) 16:34:40ID:???$form->input('field')と
$form->input('Model/field')と
$form->input('Model.field')の
大体3種類の書き方があるよな?
そんで、CakePHPは今後ドット区切り(3番目の書き方)へ
移行するって記事をどっかで見たような気がしたんだけど
ソース持ってる人いる?
0688名無しさん@Vim%Chalice
2007/09/06(木) 16:41:49ID:???http://cakebaker.42dh.com/2007/03/19/modelfield-has-been-deprecated/
0689nobodyさん
2007/09/06(木) 17:08:13ID:???ソースに書いてあるよ。
/**
* Generates a form input element complete with label and wrapper div
*
* @param string $fieldName This should be "Modelname.fieldname", "Modelname/fieldname" is deprecated
* @param array $options
* @return string
*/
ところで、scaffold(およびbakeの出力結果)に
検索機能つかないのかな?
Paginationみたいに、そのままの出力で検索機能があったら良いなぁ
検索機能自体は簡単に作れるけど、検索結果に対してPaginationとか、
そこからaddやeditをしたら、単純なindexではなく、
検索結果に戻る(当然Paginationも考慮)とか考えると
ちょっと大変だな。
addページにきたときに、addページの前の検索結果+ページを
知る必要があるから、addページに飛ぶリンクを
工夫しないといけないし。
0690nobodyさん
2007/09/07(金) 08:58:58ID:???なんと、thx
>scaffold(およびbakeの出力結果)に検索機能つかないのかな?
decorate.phpとかmasterbakeとかあったと思う。
0691nobodyさん
2007/09/09(日) 00:48:06ID:???bakeって使用するデータベースを指定することってできない?
ソース見てるとどうも'default'きめうちっぽいんだけど。
サーバー('default')とローカル('local')で設定が多少違ってて、
開発時はlocalを見てbakeしてほしいんだけど。
06923
2007/09/10(月) 05:48:34ID:???0694nobodyさん
2007/09/11(火) 20:11:32ID:???どう書くのが作法なの?
0695nobodyさん
2007/09/13(木) 00:29:34ID:WTXj/Q9bどうにかして indexs だけで sつけるだけで簡単に動く方法ないでしょうか。
英語の複数系がわからないんです。。。
0696nobodyさん
2007/09/13(木) 01:25:39ID:???0697nobodyさん
2007/09/13(木) 03:13:20ID:???http://cakephp.jp/doc/ch04s05.html
この他に、モデルの$useTableを使う方法、inflector.phpを直接改造してしまう方法がある。
0698nobodyさん
2007/09/13(木) 11:41:33ID:f1fHu9mPとりあえず使ってみることにしました。
それでCakePHPを選んだのですが、
これはようするにDBを簡単に扱うための仕組みみたいなものなんでしょうか?
データを元にviewで好きなもの作りなさいっていうことなんでしょうか?
0699nobodyさん
2007/09/13(木) 12:14:35ID:r/Zw5qbNありがとうございます!
inflectior.php のどこをどのように修正すればよいのか・・・。
わからないので教えていただけると大変ありがたいのですが。
cakephp1.1 でアプリをつくったときは indexs で動いて
cakephp1.2 の場合は indexcies じゃないとダメ。
1.1 の inflectior.php と 1.2 の inflectior.phpを見比べてみても設定が
一緒なんですよね。
0700nobodyさん
2007/09/13(木) 12:25:40ID:???0702nobodyさん
2007/09/13(木) 21:44:26ID:???あなたはいくらなんでも滅茶苦茶すぎw
せっかく教えてもらったファイル名さえスペルミスしてるじゃんw
https://trac.cakephp.org/browser/branches/1.2.x.x/cake/libs/inflector.php?rev=5223
ここをindexで検索したら、複数形作成のルールが書いてある。
これを削除してしまえば、indexsで通るようになるでしょう。でもこの際ちゃんとした複数形を覚えたら?
0703nobodyさん
2007/09/13(木) 22:41:41ID:???ちょっとしつもん。
controller で以下のようなコードを書いたのですが、1件しか登録されません。
foreach ($values as $val) {
$data = array("name" => $val);
$this->Hoge->save($data);
}
一度にたくさんインサートしたい場合はどうすればいいのでしょうか。
0704名無しさん@Vim%Chalice
2007/09/13(木) 23:03:44ID:???save()する前に$this->Hoge->id = null;してみ
0705nobodyさん
2007/09/13(木) 23:20:09ID:???内容はid=nullとあんま変わらないけど。
Model::create()
Initializes the model for writing a new record.
0707nobodyさん
2007/09/14(金) 11:48:15ID:/to9vVVuありがとうございます!この際英語を覚えることにします。
覚えておいて損はないですしね^^
0708nobodyさん
2007/09/14(金) 13:01:34ID:???日本語訳が進んでないドキュメントとかいっぱいあるんだから
そんくらいは読めるようにしないと
0709nobodyさん
2007/09/14(金) 14:23:53ID:DU5zTfFS0710nobodyさん
2007/09/14(金) 15:51:53ID:???趣味なら別にどうでもいいが。
0711nobodyさん
2007/09/14(金) 16:00:59ID:DU5zTfFS0712nobodyさん
2007/09/14(金) 17:02:29ID:???この界隈でどうやって英語抜き生活するんだ
つーか、技術英語なんて大体パターン決まってるし
サンプルコードもあるんだから割と簡単だよ
英語�_とか抜かしてる奴はただ
ズラーっと並んだ横文字をパッと見て諦めてるだけだろ?
0713nobodyさん
2007/09/14(金) 17:09:56ID:???0714nobodyさん
2007/09/14(金) 17:17:51ID:???0715nobodyさん
2007/09/14(金) 17:30:12ID:???0717nobodyさん
2007/09/14(金) 21:43:55ID:???$this->params['url'] => Array
(
[url] => posts/view ←余計なデータ
[var1] => 3
[var2] => 4
)
なんだよ。ぼけ。使いにくいじゃないか。
0718nobodyさん
2007/09/14(金) 22:26:23ID:???なんか残りチケット200ちょいからぜんぜん減ってないんだけど
0719nobodyさん
2007/09/14(金) 22:52:00ID:???そういう場合は、Cake的には普通は
URLを /posts/view/3/4 として PostsController で
function view($var1, $var2) {
...
}
というふうに受け取るんだよ。
http://cakephp.jp/doc/controllers.html#id4805355 に書いてるべ。
0720nobodyさん
2007/09/14(金) 23:05:16ID:???じゃあ聞くが、
検索語[ ] [検索]
というフォームはどうするんだよ?
/posts/?search=aaa
とかで渡されてくるだろ?
0721nobodyさん
2007/09/14(金) 23:36:29ID:???それは、
$this->params['url'] => Array
(
[url] => posts/view
[search] => aaa
)
でいいんじゃないかな。
予約語みたいなものじゃない?urlは。
どういうとき困る?
0722nobodyさん
2007/09/14(金) 23:37:36ID:???0723nobodyさん
2007/09/14(金) 23:43:50ID:???無理してCakePHPの変数を使おうとせんでも
0724nobodyさん
2007/09/14(金) 23:55:33ID:???試してから書いてくれ
0725nobodyさん
2007/09/14(金) 23:57:30ID:UPghMBCiパラメータに何を使ってるかは
自分で分かってるんだからどうとでもなるべ
0726nobodyさん
2007/09/15(土) 00:01:24ID:???保守性が悪いから困る
0727nobodyさん
2007/09/15(土) 00:13:43ID:???あとは知らん
0728nobodyさん
2007/09/15(土) 00:18:09ID:PGlxhB9Tそのレールに不満を感じ始めると途端に使いにくくなるよ
後者なら他のFWの方がおすすめ
0729nobodyさん
2007/09/15(土) 00:42:08ID:???そういうレベルの話じゃなくて、
prams['url']にurlなんかいらないだろ?
他から取得できるのに、何のためにあるんだって言う話。
0730nobodyさん
2007/09/15(土) 00:48:32ID:PGlxhB9Tこれだけじゃなくて、CakePHPはそういう意味不明な予約語みたいのが多い
俺だって_GETに'url'を追加する必要なんかないと思う
だからそういう不満を感じるなら向いてないよ、っていう話
0731nobodyさん
2007/09/15(土) 00:52:24ID:PGlxhB9T俺はもう自分からCakePHPを使うことはきっとないよ
わけが分からない制約が多すぎるからね
0733nobodyさん
2007/09/15(土) 01:23:03ID:PGlxhB9Tまあ継承して解決するだけマシだけど手間は変わらない。
ていうか、CakePHPがPHP標準の仕様を勝手に変えてるせいでそういう対応をしないといけないわけで。
頭が固いとかいう問題じゃなくて、意味不明な制約が少ないFWの方がいいってだけ。
0735nobodyさん
2007/09/15(土) 01:28:32ID:PGlxhB9Tこれでいい?満足した?ww
0736nobodyさん
2007/09/15(土) 01:31:05ID:???とっても満足した。
0737nobodyさん
2007/09/15(土) 01:32:36ID:PGlxhB9Tおめでとう。
0738nobodyさん
2007/09/15(土) 01:33:30ID:???0739nobodyさん
2007/09/15(土) 01:35:26ID:PGlxhB9T0740nobodyさん
2007/09/15(土) 07:07:45ID:???・mod_rewriteで/posts/?search=aaaを/posts/aaaに書き換える
0742nobodyさん
2007/09/15(土) 11:17:52ID:???SymfonyでもZendでもいいし、なんならRailsでも使えや。
0743nobodyさん
2007/09/15(土) 11:39:11ID:???0744nobodyさん
2007/09/15(土) 12:14:57ID:???こうですか?わかりません><
$html->formTag('/post','get',array('onsubmit'=>'location.href=\'/post/\'+this.search.value;return false;'));
0745nobodyさん
2007/09/15(土) 14:49:02ID:???0746nobodyさん
2007/09/18(火) 16:54:37ID:Al1Bs6O8Noticeエラーを表示させたくないのですが、
ドリームウィーバーで error_reporting の部分に ^ E_NOTICE をつけてもNoticeエラー
が表示されてしまいます。エラーレベルを変更するにはどこを修正すればよいのでしょうか。
cakephp1.1のときは上記方法でうまくいったのですが・・・よろしくお願いします。
0747nobodyさん
2007/09/18(火) 18:46:58ID:???http://cakephp.seesaa.net/article/53564832.html
0748nobodyさん
2007/09/19(水) 16:32:02ID:???mbstring.encoding_translationをonにすることなく、
phpコードで文字コード判別・変換したいのだが、
どこに入れたらいいのだろうか?
cakephpが解釈して、変数に入れたりする前に
$_POST、$_GET、(他にもあるかな?)の内容に対して
文字コード変換するべきだと思うんだが、
どの時点でするべきだともう?
どこにコードを書けばいいんだろうか?
0749nobodyさん
2007/09/20(木) 16:12:39ID:???0750nobodyさん
2007/09/20(木) 17:41:56ID:???0752nobodyさん
2007/09/20(木) 18:44:41ID:???0753nobodyさん
2007/09/20(木) 19:25:42ID:???0754nobodyさん
2007/09/20(木) 21:36:38ID:???そういう時は出力するコントローラのアクション内で、
Configure::write('debug', 0);
でスッキリ。
0755nobodyさん
2007/09/21(金) 13:49:22ID:7403NihySQLもわけわからんとこでエラーでるし。
さすがは a 版。
やっぱり今はまだ 1.1 を使ったほうがよさそう。
0756nobodyさん
2007/09/21(金) 18:01:26ID:???0757756
2007/09/21(金) 18:49:13ID:sxzZ5KcOな感じが一般的ですか?
0758nobodyさん
2007/09/21(金) 23:19:35ID:???普通に動いているが?
0759nobodyさん
2007/09/22(土) 00:48:28ID:???0760nobodyさん
2007/09/22(土) 03:59:23ID:???でもやっぱりalphaだと安定性が心配。
0761nobodyさん
2007/09/22(土) 17:26:50ID:???0762nobodyさん
2007/09/23(日) 14:48:44ID:???0763nobodyさん
2007/09/23(日) 16:06:27ID:???0767nobodyさん
2007/09/23(日) 21:18:16ID:???0769nobodyさん
2007/09/23(日) 23:34:12ID:???PHPフレームワークに限らず、全部ゴミ。
ドキュメント読んだりAPI見たりしてわからなければソース見ればいい。
しかしコアソースを変えさせるのは如何なものかと思ってみたりする。
以上、独り言ですた。
0772nobodyさん
2007/09/24(月) 01:35:40ID:???貧乏な上に技術もなく さらには語学力もないのに
遠吠えしてるやつってしょうもないよなあ
だな
こんなとこでほえてないで フォーラムにポストするなりすりゃいいのに
0773nobodyさん
2007/09/24(月) 02:18:10ID:???手を入れる必要があればあるほど、「効率よく開発できるフレームワーク」から
遠ざかっていくことは間違いないな。
あんまり手を入れる必要があるのなら、自分で書いても大して変わらなく
なってしまうわけだし。
0774nobodyさん
2007/09/24(月) 12:18:00ID:???ガキの独り言に何をそんなにムキになって噛み付いてんだ?w
じゃ、まずはモマエからオープンソースの意味について言ってごらん
0775nobodyさん
2007/09/25(火) 19:59:07ID:???デキるやつは、多少バグがあろうと関係ない。
ソースを読んで内部を把握するから詳しくなる。
そしていざ使うとなったときに、
一方はすでに内部から把握している人、
一方は今から勉強する人にわかれる。
0776nobodyさん
2007/09/25(火) 22:41:30ID:???それに、ソースいじりだすとさ、バージョンアップの時も作業が増えるし、いじらなくて済む
ならいじらない方がいいと思うのはおかしいですか?
ごみは言いすぎかもしれないけど、「ソース読むのが前提」ってのは本末転倒かと。
俺は、>769の意見に賛成だよ。
0777nobodyさん
2007/09/25(火) 22:58:10ID:???Cakeが空のクラスを継承してることに気が付くから、
フレームワークの根幹に手を入れるなんて大冒険しなくて良いことに
気が付くよ。
ていうかCakeでソース読まないってどんだけエスパー揃いなんだよ。
膨大なよくわからんHowtoググルより
Cakeぐらいなら、ソース読んだほうがぜんぜんわかりやすいだろう。
0778nobodyさん
2007/09/25(火) 23:08:09ID:???0779nobodyさん
2007/09/26(水) 01:35:02ID:???$this->Hoge->setSource("hoges");
としたのですが、FindAllをするとSQLのエラーとなります。
トレースを見たところ、
SELECT FROM `hoges` AS `Hoge` WHERE 1 = 1
てな具合で、SELECTの後のフィールドリストが空になっています。
自前でモデルの中でフィールドを定義するのか、
それとも、setSourceしたあとに何らかのメソッドでモデルを更新するとか
勝手に想像しながら、APIドキュメントを眺めてはいるのですが、それらしいものが見つかりません・・・
アドバイスお願いできないでしょうか・・・
#ぐぐったら、
#http://d.hatena.ne.jp/cvyan/20070925
#同じようにはまってる人がいました・・・
0780779
2007/09/26(水) 03:03:06ID:???自前でSQLを用意してfindBySqlメソッドを使えば、indexビューは表示できるようになりました。
$sql = "SELECT `Hoge`.`id`, `Hoge`.`name`, `Hoge`.`username` FROM `hoges` AS `Hoge`";
$result = $this->Account->findBySql($sql);
$this->set('hoges', $result);
ただ、InsertやDeleteメソッドも同様にSQLを用意しないと駄目な感じです。
せっかくのフレームワークなので、もう少しスマートな方法があればいいのですが・・・
0781nobodyさん
2007/09/26(水) 09:27:28ID:???モデルの基底クラスでテーブルのメタ情報をキャッシュするようになってるので、そのせいだと思う。
reset()かnewでなんとかならないかな。
0782nobodyさん
2007/09/26(水) 10:10:24ID:???0783nobodyさん
2007/09/26(水) 10:32:59ID:???それは、ドキュメント読む方が早いか、ソース読むのが早いかによるんじゃないかなぁ。
読む速度が同じであっても、ソースを読んだ方が理解や応用、拡張が素早く出来るので、結果的に作業は早くなると思う。
まぁべつにソースを全部読めっていうわけじゃないし、本末転倒ってほど悪くは無いと思う。
むしろ折角のスクリプト言語で読みやすくなってるのにそのメリットを生かさない方がもったいない。
もちろん、よいドキュメントはいつだって欲しいけどさ。
0784nobodyさん
2007/09/26(水) 10:54:34ID:???CakePHPの出来が悪いと言うことにはならない。
本当のプログラマにとってはドキュメントもソースも同じようなものだけどね。
ソースも読めないような人間は、ドキュメントを読めないのと同じ。
0785nobodyさん
2007/09/26(水) 11:31:59ID:???1.1使ってる?
そのうち使いそうだろうから、試してみたけど全然問題なかったよ。
1.2.0.5427alphaでテスト。
コントローラのbeforeFilterとindex、どちらの一行目で
setSourceしても問題なかった。
個人的には、ログのように1年単位でテーブルを分ける的な場合なら
モデル側で使用するテーブルを判断するべきじゃないのかと思うが。
0786779
2007/09/26(水) 15:17:54ID:???沢山のレスありがとうございました。
#Versionは1.1を利用しています
0787nobodyさん
2007/09/26(水) 16:35:14ID:???0788787
2007/09/26(水) 17:04:51ID:???view.phpで$this->controllerがnullになってるみたいね。
0789nobodyさん
2007/09/26(水) 18:31:30ID:???このフォルダ、なんに使うんだろうか?
このフォルダがあると言うことは、何かしらの
ユーザー定義のクラスか何かを置くのだと思う。
新しいデータベースサーバーへの対応?
だとしたら、それは app/models/datasources/dbo になるはず。
しかし、そんなフォルダはない。
まさかRDBMS以外、つまりODBMSやXML等に対応するためか?
0790nobodyさん
2007/09/27(木) 17:13:09ID:???Tracでそのディレクトリのコミットログを見たら
どういう意図で追加されたかわかるかもよ
0791nobodyさん
2007/09/28(金) 11:52:16ID:???かえって不便な気がしてきたんだけど。
0792nobodyさん
2007/09/28(金) 14:13:03ID:8QRsdJbb自作に関しては作ってみたけどヤメタ。
独自に名前空間もった変数名つけてincludeしちゃったほうが
お手軽だったりするしさほど問題なかったりする。
form系のヘルパーは使うよ。inputとかtextareaとかselectTagとか。
html系のlinkとかimageとかは使いでは無いね。
0793nobodyさん
2007/09/28(金) 15:42:01ID:???formヘルパーにいっちゃってたりして結構めんどいね。
極力ヘルプレスなほうがわかり易いと思った。
0794nobodyさん
2007/09/28(金) 19:12:35ID:???0795nobodyさん
2007/09/28(金) 21:24:25ID:???> 自作に関しては作ってみたけどヤメタ。
> 独自に名前空間もった変数名つけてincludeしちゃったほうが
> お手軽だったりするしさほど問題なかったりする。
それって、単にHelperクラスを継承しないってことなだけじゃね?w
Helperクラスを継承しないでHelperを自作している。
だよね?
0796nobodyさん
2007/09/28(金) 22:13:37ID:???>>795
あー、Helperじゃなくてプレーンなファイルなんだけど、
何か俺の言ってることもHelperと関係ない気がすごいしてきた。すまん。
ちょっとリセットして。
そもそもHelperを自作するような場面自体が少なそう。
なんていうか、デザイン要素を含むビューだとHelperの内部に
HTMLを書くことになってデザイナーがいじれないから、
アプリケーション独自のパーツ表示系とかにHelper使えない。
htmlヘルパーやjavascriptヘルパーのような汎用的かつ
ほとんどデザイン要素を含まない(含むとしてもフルカスタマイズ可能な程度)ような機能の
ヘルパーしか自作できない感じ。
そもそもヘルパーとはそういうものな気もするけどね。
>>791 はどんなヘルパーを作ったのか気になる。
0797名無しさん@Vim%Chalice
2007/09/28(金) 22:26:39ID:???Controllerは入力のデータについて集中したいというか、
Viewの表示用にデータ整形とかする関数を全部Helperに丸投げするって感じ。
テンプレートにはなるだけコードを排除したいし。
#つーか本当はControllerでHelperの指定をするのも嫌なんだけど。
#いきなりViewでHelper使えるようにする方法はないかな?
0798nobodyさん
2007/09/28(金) 22:32:36ID:???なら、AppControllerのコンストラクタでHelperファイル検索して
全部突っ込んじゃえw
0799792
2007/09/28(金) 23:06:22ID:???HelperがViewから自由に呼べないのはもどかしいよね。
細かいの一杯作ると読み込むの手間だし、
かといって1つでっかいの作ると富豪すぎる気がして。
テンプレートのコード排除は同意。
ちなみにそのHelperでデータ整形するコードって、
echo '<td>hoge</td>';
とかいうふうにコードの中にHTML入っちゃってたりする?
この書き方は個人的には絶対に避けるんだけど。
理由はHTMLエディタで認識できないし、エンジニア以外がメンテできなくなるから。
なので、そういう整形用途でrenderElementで十分だったりする。
関数作れないけどまあViewだしコピペでいいか〜とか。
頻繁に使われるならさらにrenderElementで小分けする。
あとclassが書かれたファイルをデザイナーさんがメンテするのもちょっと。
ってここは社内事情だし、まあエンジニアがテキストエディタで全部メンテするならいいけど。
0800名無しさん@Vim%Chalice
2007/09/29(土) 01:46:37ID:???Controllerの中では使いもしないHelperの配列を
用意しなくちゃならないのがそもそも気持ち悪い。
なんていうのかな、その辺はView側で完結して欲しいって思う。
>>799
Helperの中にはタグは入れてないよ。
(Cake付属のHelperはモリモリ使っててムカつくよね!)
主にModelからブン投げてきたデータを食って
配列地獄を隠蔽したり、必要なデータだけ返すって感じ。
どうしてもテンプレートが必要ならHelperから
renderElementを呼んで引っ張ってくる。
あと、renderElementはテンプレートを細分化する他に、
PHPから動的にjavascriptを生成したい場合など
コードを隔離したい場合にも使える。
ほんまView側の要だと思う。
0801nobodyさん
2007/09/29(土) 02:03:25ID:???つまり、Viewの中にphpコードを書いてHelperをロードしたいということかな?
Viewの中にコードねぇ。まあいいけど。
0802nobodyさん
2007/09/29(土) 02:08:55ID:???renderElementの中でタグを出力するのは良いのか?w
Helper呼び出しのコードを書くのは悪くて、
renderElement命令実行というコードを使うのは問題ないのか?w
0803nobodyさん
2007/09/29(土) 02:21:16ID:???> 理由はHTMLエディタで認識できないし、エンジニア以外がメンテできなくなるから。
という理由なら、renderElementを使う方法も使えないよな。
そもそもHTMLだけでループや条件分岐を表現できないのだからどうしようもない。
またフォーム系のタグにつける名前はコードの都合によってつけるものだから
当然エンジニアの仕事になる。
0804792
2007/09/29(土) 10:14:12ID:???>主にModelからブン投げてきたデータを食って
>配列地獄を隠蔽したり、必要なデータだけ返すって感じ。
>どうしてもテンプレートが必要ならHelperから
>renderElementを呼んで引っ張ってくる。
んーなるほど...ほんとにデータ整形だけなのか...
そこまでHelperでやっちゃうとほとんどコントローラ出番ないんじゃない?
Helperはデータを返すんじゃなくて表示できる形の文字列を返すものという
俺ルールで縛ってるから、
個人的にはそういうのならコントローラでやっちゃうか
コンポーネントにしちゃうか、
もしくはModelのafterFind使ったりだ。
0805792
2007/09/29(土) 10:19:44ID:???>Helperの中でタグを出力するのは悪くて、
>renderElementの中でタグを出力するのは良いのか?w>
そういうことじゃないよ。タグを出力するよしあしじゃなくて、
コードの中にタグが混入してるのがアウト。
○ <h1><?php echo h($hoge) ?></h1>
× <?php echo '<h1>' . h($home) . '</h1>'; ?>
renderElementした先で○のようにタグが.thtmlでコード外に書かれてるのならおk。
どりーむうぇーばーとかでいじれる。
Helperでもこのルールで書かれてばいいっちゃいいけど、
どりーむうぇーばーとかで開いたときにめちゃめちゃにならないように縛りいれると
renderElementでやるのと大差なくなる。
0806792
2007/09/29(土) 10:30:49ID:???>という理由なら、renderElementを使う方法も使えないよな。
ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
それくらいは教える。
ループ書いたりとか条件分岐はエンジニアが書くけど、
見栄え自体はあとからデザイナーさんが調整してほしいから。
0807名無しさん@Vim%Chalice
2007/09/29(土) 11:14:53ID:???あー悪い、View側つーか、要はControllerとテンプレートの間にもう1クッション、
表示用の準備を「PHPで」書ける空間が欲しいなって事。
Modelはデータソースへの正しい入出力に全力を注ぐべきだし、
Controllerは見た目なんかに関知しないでビジネスロジックに集中したい。
テンプレートは出来るだけHTMLの純度を高めたい。
問題の範囲を切り分けたいって意味なんだけど、分かりにくいね、ごめんちゃい
#今回はもう後戻りできないからControllerに直接Helper指定してるけど:-p
>>804
業務用の社内システム作ってるから、
Controllerのやる事は割とあるんよね (社内事情
0808792
2007/09/29(土) 11:29:02ID:???>Modelはデータソースへの正しい入出力に全力を注ぐべき
理想は俺もそうしたいが、使い勝手を考えると
Modelクラスにデータ整形のメソッドとか書くと使い易いんだなこれが...
何かデータ整形のための構造がもう1個あってもいい気もするね。
うまい名前が思いつかないけど。
>業務用の社内システム作ってるから、
>Controllerのやる事は割とあるんよね (社内事情
なるへそ。その状況想像したら分離したくなる気持ちはわかったよ。
0809nobodyさん
2007/09/29(土) 11:44:45ID:???> ○ <h1><?php echo h($hoge) ?></h1>
> × <?php echo '<h1>' . h($home) . '</h1>'; ?>
上が○ならこれもOKってことだよな?
<h1><?php echo $helper->h($hoge) ?></h1>
>>806
> ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
いや、だからその先の.thtmlにコードが入っていたら結局同じことでしょ?
0811792
2007/09/29(土) 12:51:34ID:???>上が○ならこれもOKってことだよな?
><h1><?php echo $helper->h($hoge) ?></h1>
おk
>> ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
>いや、だからその先の.thtmlにコードが入っていたら結局同じことでしょ?
そのコードが○な感じで書かれてばおk
>>810
beforeRenderをコントローラー内じゃなくて
何か別のクラスに分離したいよね。
まあ自作してもいいけどね。
0812nobodyさん
2007/10/03(水) 20:59:09ID:???ビュー周りが気持ち悪くて、使いにくいな。
bakeで作られるソースの話だが、viewとeditのctpで統一感がない。
viewの場合、<?php echo $author['Author']['id']?> という形で表示。
つまり、$authorに全データがはいってくるわけだが、
editの方は、なぜか、echo $form->input('id');
モデル名は<?php echo $form->create('Author');?>で指定しているわけだが、
肝心のデータはどこから???
ふーん。$form自体がデータをもっちゃってるのね。
タグ出力だけの機能じゃないんだ。
で、$formにデータをセットしているところは?
へぇ、コントローラにヘルパーとしてFormを入れたら
勝手にデータ読んじゃうんだ。なんだこの仕様w
0813nobodyさん
2007/10/03(水) 21:39:13ID:???0814nobodyさん
2007/10/03(水) 21:57:16ID:???たぶん、そうなんだろうけど、直接読むところじゃないよな。
controller->dataはPOSTしたときのデータ専用に使っとくれ。
ということで、そこらあたりがっちり書き換えてしまった。
表形式でのデータ編集もしたかったし、
Formヘルパーは使わずに独自のヘルパー(?)作ったよ。
0815nobodyさん
2007/10/04(木) 09:53:08ID:???まあオプションでいちいち
指定するとタグ直書きとあんまり代わらないからな。
ただ、独りよがりな仕様は否めない。
勝手にオプションを追加しておいて
それを削除するにはソースいじらにゃならん、とか
0816nobodyさん
2007/10/09(火) 16:06:42ID:???ちんこの美しさは半端ない
あれはまさに神の授けた人類の至宝だね
りっぱなやつを見ているだけで俺なんか
イきそうになるよ
だからお前も一緒にホラ や ら な い か?
ありくい
0817nobodyさん
2007/10/13(土) 00:42:51ID:???複数のmodelで使うバリデーションってどこに書けばいいの?
本も買ってみたんだけど、>>648でもふれられているように、自前の
バリデーションの説明は載ってなかった…
0818nobodyさん
2007/10/13(土) 03:00:25ID:???中間に別のModelをはさんでそこで書いてもいいが。
0819nobodyさん
2007/10/13(土) 06:46:38ID:???AppModelでいいのか。
なんかcake/ディレクトリに手を加えるのに抵抗あったからapp/の中のどこかかと思った。
さんきゅー。
0820nobodyさん
2007/10/13(土) 09:05:42ID:???0821nobodyさん
2007/10/13(土) 18:51:56ID:???ありがとうございます。
cake/app_model.phpを見たら
>Create the same file in app/app_model.php
って書いてありますね…
見落としてました。
0822nobodyさん
2007/10/15(月) 01:21:45ID:???いや俺を含めてね。
0823nobodyさん
2007/10/15(月) 16:42:00ID:???0824nobodyさん
2007/10/15(月) 16:56:02ID:???0825nobodyさん
2007/10/15(月) 18:58:29ID:???0826nobodyさん
2007/10/15(月) 21:37:52ID:???0827nobodyさん
2007/10/15(月) 21:50:58ID:???[フライング]
0828nobodyさん
2007/10/16(火) 10:46:59ID:???0829nobodyさん
2007/10/16(火) 17:34:23ID:wp+6b1Ucチュートリアル通り進めてると
思うんだけど原因がわかりませぬ。
だれか教えてください。
0830nobodyさん
2007/10/16(火) 19:47:20ID:???0832nobodyさん
2007/10/16(火) 22:24:04ID:???「使うに」の”に”がおかしいっていいたいんだろ?教養ない奴。
理解できなかったら、副助詞の「は」を補って
まだフレームワーク使うには、早いので、勉強してください と読め。
0833nobodyさん
2007/10/16(火) 23:07:35ID:???どこにVALID_NOT_EMPTY定数入れておこられたん?
エスパーきぼんぬと言われてもしょうがない
0834nobodyさん
2007/10/16(火) 23:08:02ID:???0835nobodyさん
2007/10/16(火) 23:31:16ID:???0836nobodyさん
2007/10/17(水) 00:55:10ID:???0837nobodyさん
2007/10/17(水) 00:57:48ID:???「使うには早い」 Google 検索結果・・・17,900件
1件のブログの人?
0838nobodyさん
2007/10/17(水) 01:15:36ID:???0839nobodyさん
2007/10/17(水) 01:32:54ID:???0840nobodyさん
2007/10/17(水) 16:55:45ID:???どっかの誰かさんが書いた糞本と違って内容が濃いことを願います。
本の質も少しでもRailsを模倣してほしいよ。
0841nobodyさん
2007/10/17(水) 17:31:04ID:???やり方がわからなくて今はmodifiedを1回持ってきて再設定してるんだけど。
>>840
Railsは書籍がいっぱいあるからうらやましいよね。
0844nobodyさん
2007/10/17(水) 19:20:08ID:???0845841
2007/10/17(水) 19:56:57ID:???いや、例外的に更新して欲しくないという時もあるよ。
その例外のためにmodifiedとは別の項目つくるのもスマートじゃないし。
So-net blog:sandmanの旅行の写真”とか”:CakePHP その7 - createdとmod..
http://blog.so-net.ne.jp/sand_man/2007-07-24
>ついでに、コントローラーごとに、この機能をオン/オフする変数が欲しい。
0846nobodyさん
2007/10/17(水) 20:24:38ID:???0847nobodyさん
2007/10/17(水) 21:54:28ID:q7TPqrYz初期設定とかはどこですればいいんでしょう?
例えばファイルから設定を読み込むとか、
読み込んだ設定をセッションに登録するとか…
0848nobodyさん
2007/10/17(水) 23:02:39ID:???コントローラの話?なら
var $uses = array('Model', 'Model2');
で定義してアクセスするには
$this->Model->ググれ();
>>847
/app/config/bootstrap.phpとか
0849nobodyさん
2007/10/17(水) 23:57:11ID:???おお、DB使わなくてもそれでいけるんですね(?)
すごいなあ
ついでになんですが…
独自の関数(例えばhoge)ってどこに定義すればいいんでしょう…
AppControllerに定義すると継承されるので、そのURLでアクセスされるとアクションとして処理されちゃいますよね
class AppController extends Controller {
function hoge {
}
}
class FooController extends AppController {
}
とかだと、http://nantoka.com/hoge/
でhoge()がアクションとして処理されそうな気が…
むずいなあ・・・
早く本でないかなあ
0850nobodyさん
2007/10/17(水) 23:58:11ID:???>でhoge()がアクションとして処理されそうな気が…
訂正…
とかだと、http://nantoka.com/foo/hoge/
でhoge()がアクションとして処理されそうな気が…
0851nobodyさん
2007/10/18(木) 01:17:44ID:???0852nobodyさん
2007/10/18(木) 02:15:22ID:???0853nobodyさん
2007/10/18(木) 08:53:55ID:???>>852
どうもです m__m
_とかつけるとアクションとしては呼ばれないんですかね?
がんばって調べてみます
0854nobodyさん
2007/10/18(木) 14:39:39ID:???$html->file('Sample/pic');
でアップロードしたんですけど、$this->data['Sample']の中には
ファイル名しかない・・・
$this->dataの中をprint_rで見ても、tmp_nameとか入って無いんですが。
これって何か設定しないと駄目なこことかありますか?
0855nobodyさん
2007/10/18(木) 15:13:11ID:???move_uploaded_file()とか普通に使え
0856nobodyさん
2007/10/18(木) 15:17:15ID:???formにenctype入れるの忘れてました。
テヘ
0857nobodyさん
2007/10/18(木) 15:33:11ID:Tkva8LEl改行を改行コードつまり"\r\n"ではなく、'\n' で
記述するのは仕様なのか?
コード読むと、__stripで改行コードさくっと消していたり、
$message = str_replace(array('\r','\n'), '\n', $message);
というコードがあったりするんだが・・・
あとメールの仕様って改行コードは文字コードとしての\r\nでいいの?
0858nobodyさん
2007/10/18(木) 15:43:49ID:Tkva8LElhttps://trac.cakephp.org/ticket/3381
バグでいいんだよな?
コアを修正するとあとで面倒なんだよな。
0859nobodyさん
2007/10/18(木) 16:06:31ID:???改行削除しているのは、__strip関数なんだよなぁ・・・
$message = $this->__strip($message, true);
__strip関数の第二引数をfalse(省略すると)
改行コードは削除されないんだが、
そうすると第二引数をtrueにしているところがなくなるぞ?
何か意味があってそういうことしたのだろうが、
よくわからん。履歴も見たけどよくわからん。
だれか、EmailComponent使っているのだろうか・・・
0860nobodyさん
2007/10/18(木) 16:12:14ID:7IUQWVSkそういう場合って、セッションにでも保存しない限り、毎回ファイル読み込まんといけんの?
class Data extends AppModel {
var $name = 'Data';
var $filename;
function load() {
ファイル読み込み処理
$this->filename = ファイル名;
}
}
class UserController extends AppController {
var $name = 'User';
var $uses = array('User', 'Data');
function view() {
if (!$this->Session->check('initialized')) {
$this->Template->load(WWW_ROOT . 'template/');
$this->Session->write('initialized', true);
}
$this->set('file', $this->Data->filename);
}
}
とかやってるんだけど、2回目以降のアクセスでビューの$filenameが空になる…
0861nobodyさん
2007/10/18(木) 16:14:06ID:???class Data extends AppModel {
var $name = 'Data';
var $filename;
function load() {
ファイル読み込み処理
$this->filename = ファイル名;
}
}
class UserController extends AppController {
var $name = 'User';
var $uses = array('User', 'Data');
function view() {
if (!$this->Session->check('initialized')) {
$this->Data->load(WWW_ROOT . 'template/');
$this->Session->write('initialized', true);
}
$this->set('file', $this->Data->filename);
}
}
$filenameが空になる。
毎回ファイル読むかセッションに保存しないといけないんかな?
0862nobodyさん
2007/10/18(木) 16:21:41ID:???いまいち何がやりたいのかよくわからないけど、
>2回目以降のアクセスでビューの$filenameが空になる…
それは当たり前なんじゃないかな。
0863nobodyさん
2007/10/18(木) 16:29:38ID:???DBなしでやってるんだけど、どうもうまくいかない…。
セッション initialized = false のとき(最初)
1. DataModel: $this->Data->load(); で $this->Data->filename にファイル名が入る
2. UserController: $this->set('file', $this->Data->filename でビューにファイル名を渡す
3. ビューで <?php echo h($file) ?> でファイル名が表示される
セッション initialized = true のとき(2回目以降)
1. $this->Data->filename にはすでにファイル名が入ってる(はずだと思うんだけど…)
2. UserController: $this->set('file', $this->Data->filename でビューにファイル名を渡す
3. ビューで <?php echo h($file) ?> でファイル名が表示される(はずなのにされない)
なんか間違ってる?(^^;
0864nobodyさん
2007/10/18(木) 16:46:11ID:???セッションに保存するしかないのかな?
なんかしっくりこない(・・;
0865nobodyさん
2007/10/18(木) 16:53:18ID:???DB使いましょう。
> セッション initialized = false のとき(最初)
> 1. $filename = 'hoge'; で $filename にファイル名が入る
>
> セッション initialized = true のとき(2回目以降)
> 1. $filename にはすでにファイル名が入ってる(はずだと思うんだけど…)
って言ってるのと同じだと思うんだけど。
DBなりクッキーなりセッションなりに記憶しないと、変数のデータは
ページ出力と同時に全て消えるよ。
0866nobodyさん
2007/10/18(木) 16:58:29ID:???>ページ出力と同時に全て消えるよ。
そうなのかあ
普通の感覚でやってたので混乱した…
ありがとう!
DBを使わないものなので、セッションにでも保存することにします >_<
0867nobodyさん
2007/10/18(木) 17:02:24ID:???こういうのもDBでやるもんですかね。
0868nobodyさん
2007/10/18(木) 17:05:05ID:???ttp://cakephp.jp/modules/newbb/viewtopic.php?topic_id=754&forum=3
こういうのでは?
0869nobodyさん
2007/10/18(木) 17:17:12ID:???俺はDBでやってるよ。
・・・でも読み込み重いかもなんておもちゃって
ファイルにキャッシュする機能つけちゃったけどなw
save時に全データをファイルにキャッシュ。通常はファイルから読み込み。
DBにした理由は、設定画面を作るのが面倒だったから。
0870nobodyさん
2007/10/18(木) 17:42:09ID:XZqNQY+Z0871nobodyさん
2007/10/18(木) 18:00:34ID:???どうも。DBにしといたほうが無難っぽいすな。
所でテーブルが無いとモデルとかコントローラとか作れないでしょうか?
0872nobodyさん
2007/10/18(木) 18:02:46ID:???これ嫁。
0874nobodyさん
2007/10/18(木) 22:21:39ID:???セッションがうまく読み込めないんだけどバグ?仕様?
もちろんリダイレクト前に、コントーラAでセッションに保存してるし
コントローラBではセッションの読み込みをしている
読み込めないというより、コントローラAで保存ができないのか?
謎すぎる…
$this->redirectはroutes.phpの設定無視されるのか?
0875nobodyさん
2007/10/18(木) 22:23:34ID:???すまそ 自己レス
beforeRenderでセッション保存してたのがいけなかったみたい
保存前にリダイレクトしてたってことか orz
0876nobodyさん
2007/10/18(木) 23:26:42ID:???少し慣れてくると使うのが楽しくなってくるね ヽ(゚∀゚)ノ
0878871
2007/10/19(金) 07:26:08ID:???これ書き込みは出来ても読み込みはどうすればいいんでしょうか?
0879nobodyさん
2007/10/19(金) 17:21:16ID:???0880nobodyさん
2007/10/21(日) 09:03:30ID:???もうちょういでCake本が出るなぁ
みんな買うの?
0881nobodyさん
2007/10/21(日) 11:00:36ID:???アフィうぜえ。
通報しておいた。
http://www.amazon.co.jp/exec/obidos/ASIN/4839924317/
0883nobodyさん
2007/10/21(日) 17:33:03ID:???0884nobodyさん
2007/10/21(日) 21:00:01ID:???Cakeの勉強続ける意味ってあるのかな。
Railsと併用とか戻ったとかいう人いる?
もちろん、Rails使えない環境ではCake使えるけどRails知ってて敢えてCake使ってるっていう人。
0885nobodyさん
2007/10/21(日) 21:06:47ID:???(;゚ Д゚) 両方使えて損は無いだろ?時間が問題になるだけで。
0886nobodyさん
2007/10/21(日) 21:27:02ID:???0887nobodyさん
2007/10/22(月) 12:31:50ID:???どうすればいいんでしょうか?
後プログラマに依存しないで静的ページを追加していく方法とかありますか?
0888nobodyさん
2007/10/22(月) 12:53:18ID:???適当なディレクトリにインストールすれ
静的ページの定義がわからんが、単にファイルとして設置もできるしCake通った場合もおk
0889nobodyさん
2007/10/22(月) 20:39:14ID:???0890nobodyさん
2007/10/22(月) 20:53:25ID:???0891nobodyさん
2007/10/22(月) 23:22:05ID:???0892nobodyさん
2007/10/23(火) 16:42:02ID:???0893nobodyさん
2007/10/23(火) 22:15:53ID:???でもこれが組み込まれていないorz
afterFind not called on associated Model Behaviours - diff attached
https://trac.cakephp.org/ticket/2056
バグだろ? 早く公式で組み込まれないかな・・・
0895nobodyさん
2007/10/25(木) 00:35:51ID:???0896nobodyさん
2007/10/25(木) 01:04:02ID:???わかっていたことだけど、alpha版に手を出すと面倒だねw
>857のメールの件だが、動かしてはいないんだがソース見た限りではちゃんと直っているようだ。
コントローラーのnamedArgsがなくなってpassedArgsだけになっていた。ほとんど同じようなものなので、簡単に修正。
namedArgsはもともと使ってはいけないものだったのだろうか?
なんていうんだっけ、名前つきURL? paginationとかで使われている/controller/action/name:value の「:」という区切り記号。
以前はコントローラの、$argSeparatorで指定できたのが、Routeの仕事になっている。まあ意味を考えれば妥当な変更だね。
設定するにはconnectNamedを使う。でいいのだろうか? この関数が何のためにあるのかよくわからない。
とりあえず/app/config/routes.phpにRoute::connectNamed(array(),array('argSeparator'=>'区切り記号'));を追加して設定できた。
これでいいのかわからんが、コードを見る限り区切り記号変更以外に副作用はないようだ。
/app/config/core.phpがことごとく変えられているw
といってもdefine('〜〜〜',〜〜) が Configure::write に変わっただけなんだが。
おかげで、DEBUG定数を見ているコードを修正する必要がある。
Configure::read('debug')に変えるだけだけど。
テストのページ(simpletestを起動するためのtest.phpのところ)の
charasetがUTF-8に修正された。うんよかった。
Single Table Inheritanceなるものをつかっているのだが、動かなくなった。
(詳細 http://cakephp.seesaa.net/article/23101637.html)
(大元 http://www.ifisgeek.com/tutorials/implementing_single_table_inheritance_in_cakephp)
自分はいろいろ変更しているのでそのままあてはまらないかもしれないが、
大元のコードSnippet #3: Complete definition for the Current Model.の $table = $this->__table;の次の行に
$this->useTable = $table;を追加したら動いた。まあこれは大元が悪い気がするが。
とりあえず、俺にとって問題が出た修正点はこんなところかな?
0897nobodyさん
2007/10/25(木) 12:48:02ID:???cakeコマンドの検索パスから、
/app/vendors/shells が無くなった?
/venders/shellsに変えればいいだけなんだが、
1.2.0.5875pre-betaでもパスは残っているしこれはバグだろうか?
0898897
2007/10/25(木) 13:06:00ID:???今までは、/cake/consoleに移動して、cakeコマンドを実行していたのだが、
それでは/app/venders/shells/を見てくれなくなって
/app で実行したら見てくれた。
これは、デフォルトの動作で、-app 引数で見るパスは変更可能。
0899nobodyさん
2007/10/25(木) 15:21:22ID:QUb8umf5わかっていたことだけど、alpha版に手を出すと面倒だねw
同感。ちなみに、まだ本屋いってないけど本でたかな。
cakephpの新しい本。早く読みたい。
0900nobodyさん
2007/10/25(木) 16:10:51ID:???0902nobodyさん
2007/10/25(木) 20:40:27ID:???面倒は面倒だが、書いてある文章よりかは面倒じゃないぞw
比較的マイナーなことをしているからそうなるわけで、
ほとんどの人はすんなり移行できるんじゃないかな?
>>900
> 1.1でつくってて本当によかった
それはそれで、1.2へ移行するときに面倒なことが・・・
結構かわっているしね。formヘルパーとかPaginationとか。
俺は、EmailComponentとユーザー関数によるValidationと
Behaviorと名前つきURLパラメータとか使っているから
1.2じゃないともう無理。
0903901
2007/10/26(金) 00:12:57ID:???俺もEmailComponent、Validationの二つが決定的で1.2を使ってる。
1.1からだとhtmlとformヘルパー周りの変更は確かにめんどくさそうだね。
0905nobodyさん
2007/10/26(金) 11:30:28ID:???0906nobodyさん
2007/10/26(金) 11:31:00ID:???Modelname/columnnameなどの文字列をモデル名とカラム名の配列に
変換してくれる(または、その逆をしてくれる)関数はありませんか?
0907nobodyさん
2007/10/26(金) 11:37:40ID:???1.2.0.5427alphaで、admin routingを使ったときの
/admin/controllers/indexにアクセスしたときの
action名(コントローラ->actionおよびコントローラ->params['action'])って
indexじゃなかったっけ?
1.2.0.5875pre-beta の場合、admin_index になっているような・・・。
仕様変更? それともなんか設定不足かなにかかな?
0908907
2007/10/26(金) 12:02:50ID:???https://trac.cakephp.org/ticket/3440
これの修正を適用したら直った。
あっ。直ったと言うのは正確にはソートの部分ね。
>>907の直接の問題は、paginationを使ったときテーブルのヘッダ部分が
/admin/controllers/admin_index/page=1/sort=type/direction=asc と
admin_indexが追加されてしまっていること。
パッチを適用したらちゃんと直った。
actionが以前、admin_indexだったかどうかは忘れたが
これからはこれなのだろう。
0909907
2007/10/26(金) 12:15:32ID:???これでアクセスしたときは、
function admin_index($value) {
の$valueにabcが入るのに、
/admin/controllers/index/named:1/abc
これでアクセスしたときは、
function admin_index($value) {
の$valueが、なんで1なんだよ?
/admin/controllers/index/abc/named:1
のときはちゃんとabcが入るくせに
(゚Д゚)ハァ? (゚Д゚)ハァ?
1.2.0.5875pre-beta は
こまかいバグがおおいなぁ。
0911nobodyさん
2007/10/26(金) 19:16:41ID:???array('checked'=>($data['Pic_resize']?'checked':null),'value'=>1)
とかにしてパラメータ渡さんとだめなん?
0912nobodyさん
2007/10/27(土) 00:05:03ID:???0913nobodyさん
2007/10/27(土) 21:04:01ID:euGofwdi0914nobodyさん
2007/10/28(日) 00:56:30ID:agDkXCq31つのアプリにまとめると、コントローラ名なんかがかぶるから長い名前になってしまう…
0915nobodyさん
2007/10/28(日) 12:02:53ID:???0916nobodyさん
2007/10/28(日) 12:36:40ID:???それはいいとして、GDの命令自体は同じ。
GDを含んでいるアプリ全体は簡単に書ける。
フレームワークとはそういうもん。
0917nobodyさん
2007/10/28(日) 13:52:19ID:???そんなにコントローラー名かぶらないと思うけどなあ…
このへん参考にしたら?
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=786&forum=3&post_id=1464
http://program.alphabrend.com/modules/pukiwiki/42.html
俺は↑という感じでサブドメイン運用しているんだが、
それでもサブドメインが変わると、セッションが切れてしまう。
firefoxでセッションの情報を見ると、対象ドメインは.hoge.jpに
なっているので、hoge.jpでもfuga.hoge.jpでもOKのはずだよね?
0918nobodyさん
2007/10/28(日) 14:24:34ID:???ありがとう
やっぱりセッション周りいじるのが一番簡単なのかな
コントローラ名がかぶるのはCakePHPの規約に合わせてつくってるから…
(モデルごとにコントローラ作るから)
規約に合わせないで、1つのコントローラでいくつかのモデルをまとめて扱えばいいのかな
今、気づいた orz
0919nobodyさん
2007/10/28(日) 15:09:09ID:???自分もpre-betaに移行してみたよ。
修正が必要だったのは
>おかげで、DEBUG定数を見ているコードを修正する必要がある。
ここだけ。
defineはconfig.phpと関係ない定数だけで使うようにってことなのかね。
0920nobodyさん
2007/10/28(日) 15:16:07ID:???よく知らないんだが規約ではモデルごとにコントローラーを作るのを求められてるの?
コントローラーは、ユーザーが何かしらの行動をしたときに動作を振り分けるものだから、
たとえばアクセスログをDBに記録する場合には、モデルだけ必要でコントローラーは
必要ないと思うんだが。
0921nobodyさん
2007/10/28(日) 15:18:18ID:???0922nobodyさん
2007/10/28(日) 15:26:23ID:???あれ、別に作らなくてもいいんだっけ?
一応、規約だとモデル・コントローラ・ビュー全て一式そろえないといけないことになってたかと思った
(もちろん、$Useとか$UseTableとかで変えられるけど)
掲示板とかのカテゴリ用のテーブル作って、CategoryControllerも作ってたんだけど、
さすがになんか変だなあ、と思って、
別にコントローラのないモデルもあるよなあと気づいた…。
小物は規約に従っててもいいけど、少し変わったもの作るとなると自分で調整したほうがいいみたいね
0923nobodyさん
2007/10/28(日) 15:27:08ID:???趣味でやってるけど書き直そうとしてる
でもDB使ってないサイトなので、あんまり意味ないかもw
楽だなあ、とは思った
0924nobodyさん
2007/10/28(日) 15:29:53ID:???0925nobodyさん
2007/10/28(日) 15:30:43ID:???0926nobodyさん
2007/10/28(日) 16:01:28ID:???0928nobodyさん
2007/10/28(日) 16:54:10ID:???http://www.google.com/search?num=50&hl=ja&q=%22*+queries+took+*+ms%22&lr=lang_ja
これ既出?
0930nobodyさん
2007/10/28(日) 22:46:21ID:???0931nobodyさん
2007/10/28(日) 22:49:07ID:???ピンポーン
0933nobodyさん
2007/10/28(日) 23:09:53ID:???1.2 pre-betaにしてからbake.phpの場所が変わっていたので cake/console/libs で php bake.phpをしても何も表示されません。
ほかに何か変更になったんでしょうか?
0934nobodyさん
2007/10/29(月) 02:13:31ID:???cakeコマンド自体は、/cake/consoleにあるが、
実行する場所は、/app にいることが想定されていると思う。
なぜなら、なんのオプションもつけずに、/app/venders/shells/に作った
独自のスクリプトを読むためにはここにいなければいけないから。
だから、俺は環境設定のPATHに、/cake/consoleを追加している。
0935nobodyさん
2007/10/29(月) 14:18:29ID:???なぜか知らんが、$this->params['controller']があると、
それを優先的にモデルに設定してしまう。
https://trac.cakephp.org/browser/trunk/cake/1.2.x.x/cake/libs/view/helpers/form.php?rev=5811#L160
/post/view/1を表示しているときに/comment/addとかにactionが
設定できなくなった。
0936nobodyさん
2007/10/29(月) 14:53:23ID:???'url' => array('controller'=>'comment', 'action'=>'add')
とかoptionsに入れればいいんじゃないの?
それでダメと言う話?
0937nobodyさん
2007/10/29(月) 16:33:09ID:???あー、optionsをそう書くのか。
前は
$form->create('Comment', array('action'=>'add'))
でいけてたはずなんだけど。
0939nobodyさん
2007/10/30(火) 00:46:08ID:???0940nobodyさん
2007/10/31(水) 00:16:45ID:???pre-betaも出たし、なんかタイミング悪い。
これなら前に出たPHPフレームワーク本の方がいいかも。
購入は1.2に改訂されるまで待ちかな。
0941nobodyさん
2007/10/31(水) 02:13:47ID:???0942nobodyさん
2007/10/31(水) 16:03:44ID:???0943nobodyさん
2007/10/31(水) 17:07:27ID:y/Xrur+hcakephp1.1で作ってるので個人的には今まで出た本の中では良いと思う。
なにせcakephp1.1使ってますから。
ただ、文字が多すぎ。カラーで出してくれたら嬉しかったなと思う。
0944nobodyさん
2007/10/31(水) 17:35:10ID:???0945nobodyさん
2007/10/31(水) 17:38:10ID:???0946nobodyさん
2007/10/31(水) 22:44:43ID:???半分くらいはまとめただけって感じなのが…
もうちょい実践で使えるノウハウがほしいなあ
入門書としては悪くないと思う
0947nobodyさん
2007/10/31(水) 22:47:25ID:???0948nobodyさん
2007/11/01(木) 00:36:06ID:???0949nobodyさん
2007/11/01(木) 01:32:04ID:???0950nobodyさん
2007/11/01(木) 03:19:40ID:???0951nobodyさん
2007/11/01(木) 11:57:40ID:???もちろん専用サーバーならなんでもありだけど、
それならJavaでいいんじゃね?という感じだし。
0952nobodyさん
2007/11/01(木) 12:52:33ID:???PHPしか需要がねーよ orz
0953nobodyさん
2007/11/01(木) 17:14:54ID:???これってSessionとか使って記憶しておく事とかできませんか?
0954nobodyさん
2007/11/01(木) 20:53:29ID:40qfpM4a別の作って見たらちゃんとRedirect後もエラー表示されてる。
「リダイレクトするとtagErrorMsgの表示が見えなくなったんですが、
どなたか原因わかりませんか? 」
に質問を買えます。
お願いします。
0955nobodyさん
2007/11/01(木) 21:27:48ID:???エラーの後のリダイレクトは駄目なんですね
質問取り下げます。失礼しました。
0956nobodyさん
2007/11/03(土) 15:26:30ID:???メール返して本人確認するみたいな・・
0957nobodyさん
2007/11/03(土) 17:59:33ID:???前に探したけど、特になかった気がするなあ。
Postされる情報の中にidが含まれていると任意のidが
設定できちゃうのね。
いちいちnullを入れるのがめんどくさい&不安なんだけど
みんなどうやって解決してる?
0958nobodyさん
2007/11/04(日) 00:16:12ID:???0959nobodyさん
2007/11/04(日) 01:40:38ID:???nullもいらないじゃんw
0960nobodyさん
2007/11/05(月) 04:20:02ID:bzvMK5G5僕はとりあえず全部DOCUMENTO ROOT直下にそのまま配置して、cakeとかappとかには直接アクセスできないように.htaccessで設定してるんですがそれで十分なのか不安なんですが。
(あとweb_rootが下の階層にあるのがデザイナーさんに気持ち悪がられる)
0961nobodyさん
2007/11/05(月) 04:27:55ID:???0962nobodyさん
2007/11/05(月) 16:55:08ID:???http://massat.jp/2007/01/08/110
この辺参考にしたら?
dorument_root/
にwebroot突っ込んで
document_root/cake
にコアを入れて
で、cakeディレクトリはアクセス制限。
って感じで
0963nobodyさん
2007/11/07(水) 16:56:26ID:???んー、例えばSNSの日記とかで/diaries/read/$idみたいなURLの場合。
悪意のあるだれかが日記を投稿するときにidをPostに含めて投稿した場合、
オートインクリメントが無効になって、いきなりidが飛んじゃう。
0964nobodyさん
2007/11/07(水) 20:37:33ID:???0967nobodyさん
2007/11/08(木) 04:05:21ID:???app_controllerにそれ用の関数書いとくというのはありですか?
0968名無しさん@Vim%Chalice
2007/11/08(木) 14:05:02ID:???プラン1
app_modelでsave()をオーバーライドして
idを指定してきてたらidがデータベース上に存在するかチェックする
プラン2
controllerごとに$whitelistの配列を定義。
app_controllerのコンストラクタで$this->actionを見て、
editだったら$whitelistにこっそりidを付加
プラン3
save()で統一するメリットなんてたかが知れてるんだから
もういっそadd()とかedit()とかのラッパーを作ってmodel側で完結
プラン4
ママに頼む
0970nobodyさん
2007/11/08(木) 14:44:38ID:???推測されやすいし、ポストされるとまずいよね。
その辺を考えると>>968のプラン2が一番いいのかなあ。
この問題について言及しているブログとか見つからないんだけど、
みんなどうやって解決しているのかね。
もしかして普通にセキュリティホールになってたりするのか?
0971nobodyさん
2007/11/08(木) 15:50:07ID:???単に、createdとmodifiedが編集可能フィールドになるってだけで。
0972nobodyさん
2007/11/08(木) 16:44:49ID:???「情報を保存する」オプションを有効にする(CakePHP修行 #34) | IDEA*IDEA
http://www.ideaxidea.com/archives/2007/07/cakephp_34.html
これを見ると、
usersテーブルに、ユーザーごとのhashを保存
↓
ログイン時に「保持する」にチェックが入っていたら、hash値をcookie発行
↓
ログインチェック時にcookieを見てhash値があったら、それでログイン。
って感じの処理をやっているんだけど。
なんでこんなことをやっているのかわからない。
sidをcookie発行しちゃだめなの?
0973nobodyさん
2007/11/08(木) 17:05:29ID:???でぐぐる
0974nobodyさん
2007/11/08(木) 21:38:53ID:???CakeってSession Fixation対策はある程度されているような。
少なくとも?CAKEPHP=1234みたいなのは効かないと思うんだけど。
0975nobodyさん
2007/11/08(木) 21:57:56ID:???↓
セッション固定化しないようにした
↓
そんなsidをcookieに保存しておくのか?
0976nobodyさん
2007/11/09(金) 03:59:48ID:???delアクションって最悪だな。
アドレスにアクセス(GET)しただけで削除される。
普通こういうのはPOSTを使って削除するもんだろ。
0977nobodyさん
2007/11/09(金) 14:17:29ID:???普通に書けばいいんじゃね?
0978nobodyさん
2007/11/09(金) 17:07:22ID:???sidをcookieで保存しておくとどういう攻撃が想定されるかわからないんだけど、
すまんが攻撃名だけでも教えて貰えないか。
0979名無しさん@Vim%Chalice
2007/11/09(金) 17:07:32ID:???0980名無しさん@Vim%Chalice
2007/11/09(金) 17:13:33ID:???誤)prebata
正)predator
0981nobodyさん
2007/11/10(土) 02:09:58ID:???次回アクセスされたときにcookieから取り出したsidが
有効である保障はないだろう?
0982nobodyさん
2007/11/10(土) 09:54:00ID:rF2PTWzYapp_controllerでログインチェックしてるんですが、
Sleipnirでぶちぶちセッションがきれてしまいます。
他のブラウザでは問題ないです。
1.2.0.5427alphaでも1.2.0.5875pre-betaでも同じ現象が発生します。
だれか同じ現象ではまった人はいませんでしょうか?
0983nobodyさん
2007/11/10(土) 11:42:36ID:???ttp://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=817&forum=9
1.1の記事だが役に立つかな?
0984nobodyさん
2007/11/10(土) 14:00:36ID:???>>981
sid更新ごとにcookie発行すれば大丈夫のような。
どこか違うPCからログインした場合は再ログインが必要になるけど、
>>972みたいな固定値でやるよりよっぽどいい気がする。
情報提供ありがとうございます。
mediumに設定しましたが、状況かわらずでした。
困りました・・
0986nobodyさん
2007/11/10(土) 20:29:07ID:???Cakeを動かして同じ現象が起こるかレポしてくれ
0987nobodyさん
2007/11/11(日) 10:03:47ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。