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

【PHP】フレームワーク CakePHP 8ホール目【1.3】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/03/18(木) 10:00:59ID:6+kHM8kH
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

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

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

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0070nobodyさん2010/03/25(木) 00:36:15ID:???
>>68
マニュアルのモデルのところに出てる以外は別に決まってないので好きなようにどうぞ。

>>69 のように英語で考えてわかりやすいように・・・というか、
自分でコントローラーとかビューのコード書くときに「えっとフィールド名なんだっけ??」って
いちいち探さなくて済むように作っておけばいいよ。
0071nobodyさん2010/03/25(木) 09:17:02ID:???
http://www.imagecheese.com/gallery/lil.jpg

上記のページはユーザー情報のedit画面です。
アドレスに指定された$idを元に、データベースから情報を抜き出しています。(例では$Idが43)
この$idの部分を $hashで表示する方法はないでしょうか?

http://localhost/scrap/users/edit/43 (これが今のやり方)
http://localhost/scrap/users/edit/7c02d52cc1be46217793f002640553d7 (これで元データを拾いたい)


下記が現在のスクリプトです。

function edit($id = null) {
if (!empty($this->data)) {
if($this->User->saveall($this->data, array('validate'=>'first'))){
$this->Session->setFlash(__('The Data has been saved.', true));
}
}
if (empty($this->data)) {
$this->data = $this->User->read(null, $id);
$this->set('data', $this->data);
}
}


単純に$idを$hashにすれば上手くいくかなと思いましたが、上手くいかず。。お助けくださいませ。
0072nobodyさん2010/03/25(木) 09:23:01ID:???
>>71
read()じゃなくてfind()を使いましょう
マニュアル読んで、editアクションで何が行なわれているかを理解するところから始めると良いよ
0073712010/03/25(木) 09:32:04ID:???
>>72 
ありがとうございます!

スクリプトを以下のように書くとこうなりました。
http://www.imagecheese.com/gallery/ouo.jpg

function edit($id = null) {
if (!empty($this->data)) {
if($this->User->saveall($this->data, array('validate'=>'first'))){
$this->Session->setFlash(__('The Data has been saved.', true));
}
}
if (empty($this->data)) {
$conditions = array("hash" => $id);
$this->data = $this->User->findAll($conditions);
$this->set('data', $this->data);
}
}


データは取得できたけど、フォームに自動的に挿入されない。。
0074712010/03/25(木) 09:34:29ID:???
ちなみに Viewの部分はこちらです。

<?php echo $form->create('User',array("action"=>"show"));?>
<fieldset>
<legend><?php __('Edit Data');?></legend>
<?php
echo $form->input('address');
echo $form->input('Keyword.0.name');
echo $form->input('Keyword.1.name');
echo $form->input('Keyword.2.name');
?>
</fieldset>
<?php echo $form->end('Submit');?>
0075712010/03/25(木) 09:40:46ID:???
すいません!
findall じゃなくて findで指定したら上手くいきました!

なんて馬鹿なんだ。。
0076722010/03/25(木) 09:43:57ID:???
>>73-75
全部聞こうとしないで、試行錯誤してごらん
いつまでも使いこなせないよ
0077712010/03/25(木) 09:52:43ID:???
了解しました。
すぐに聞かずに自分で悩む時間を大切にします!

この試行錯誤する過程が一番身になるんですよね。。
0078642010/03/25(木) 17:45:28ID:???
cookieにsessionですか
すみませんがPaginetorでの具体的なやり方教えていただけませんか?
0079nobodyさん2010/03/25(木) 18:04:30ID:???
>>78
自分で調べろ
0080nobodyさん2010/03/25(木) 22:54:10ID:???
ヒントだけあげるとpaginator使おうが使わなかろうがフォームに値をセットするには
どうすればいいか考えればいい。
0081nobodyさん2010/03/25(木) 23:49:51ID:???
甘やかしすぎるのはよくないんじゃねーの。
ただ「教えてくれ」と言ってる奴ってダメだよ。
「ここまで調べたけど、ここが分からない」というのが本来の聞き方でしょ。
ダメ人間に餌を与えすぎると無意味に肥え太るぞ。
0082nobodyさん2010/03/26(金) 07:28:24ID:???
>>78
とりあえず、それぞれの値を保存、取得するのに
いくつかのやり方があるということ
どういうサイトを作っているのか、晒してくれれば
見にいくよ
0083642010/03/26(金) 09:23:56ID:???
POSTで渡すならすぐにわかるのですが
ちなみにチェックボックスは
<?php e($form->checkbox('Model.name.'.$id))?>
という形でこれをforeachで繰り返し出してます。
POSTで来るなら
foreach($this->data['Model']['name'] as $key => $value){
if($value == 1){

}
見たいな感じの処理でいいと思うのですが

もう少しpaginatorを勉強します
すみませんでした
0084nobodyさん2010/03/26(金) 11:40:01ID:???
>>83
paginatorというブラックボックスを前にして、たぶん本質とは全然関係なさそうなところで
引っかかってるだろうから俺は >>80 を書いたんだけども、
paginatorは一旦頭から切り離す。どのページに推移しようがやることは同じだって。
0085nobodyさん2010/03/26(金) 11:50:37ID:???
>>83
javascript使ったらどうかな?
0086642010/03/26(金) 13:12:20ID:???
すみませんやりたいことを初めから準に書きますね。

まず、検索フォーム(page_contololler)から『アイス』と入力して検索
データベースから『アイス』を含むユーザーを取ってきます。

ここは
// 検索条件
if (env('REQUEST_METHOD') == 'POST' ) {
$this->Session->write('pageHash', $this->data['Page']);
$conditionsHash = $this->getWhereParameters($this->data['Page']);
} elseif (isset($this->passedArgs['Page'])) {
$this->data['Page'] = $this->Session->read('pageHash');
$conditionsHash = $this->getWhereParameters($this->data['Page']);
} else {
$this->Session->delete('pageHash');
$conditionsHash = array();
}
//検索条件

function getWhereParameters($pageHash) {

$conditionsHash = array();

$conditionsHash['name' Like ?] = $pageHash['page']['name'];
}

$this->paginate = array('Model' => array('conditions' => $conditionsHash,
'limit' => 10
'page' => 1));

こういった感じで$conditionsHashをsessionで渡して
paginatorの次へを押した場合検索条件を引き継ぐようにしています。
0087642010/03/26(金) 13:16:17ID:???
ここでリスト一覧にさっきのチェックボック(チェックのON,OFF可能)を持ったユーザが一人一人
出てくるわけなのですが。
paginatorの 次へ>> や << 前へを押した場合に
自分でチェックをつけたチェックボックスを維持したままページを移動したいのです。

それで最後にチェックの入ったユーザだけを取り出すというシステムです。

やはり表示上は裏で全部出してjavascriptでの制御が簡単なんですかね
0088nobodyさん2010/03/26(金) 13:29:56ID:???
>>87
次へ>>をsubmitにすれば、controllerでsessionに保存したりできるよね
しかし、どちらにせよjavascriptは使うのではあるまいか、と思います
0089nobodyさん2010/03/26(金) 13:31:55ID:???
面倒だから検索条件をserializeしてセッションでわたせば。
0090nobodyさん2010/03/26(金) 13:38:22ID:???
ページングしてるページ毎のチェックボックスの状態を記憶せにゃらならんのでしょ。
自分だったら

1)チェックボックスにonclickイベントつけて、ユーザーIDとチェック状態を非同期送信
2)1)をサーバー側のアクションで受けて、DBなりセッションなりに溜めとく
3)あとは溜めたステータス情報を持ち回って、煮るなり焼くなりお好みひゃっほー

あ、昼休みおわた
0091nobodyさん2010/03/26(金) 14:55:35ID:???
SQLのログでさ、
SQLへの負荷 はどれをみればいいのかな。
Nr Query Error Affected Num. rows Took (ms)

おしえてちょんまげ。
0092nobodyさん2010/03/26(金) 15:09:30ID:???
>>91
そのなかなら Took (ms)
ms = micro seconds
0093nobodyさん2010/03/26(金) 15:45:33ID:???
>>92
ご親切にありがとう!
ちなみにどれくらいまでが問題無い範囲なんだろ。

合計が 100越えたら重すぎるとか、300までなら余裕とか。
もちろんアクセス数などにもよるだろうけど。
0094642010/03/26(金) 15:48:19ID:???
いろいろな意見ありがとうございます。
今後じっくり考えてやってみます。
ただ、今回は時間があまりないのと自分自身のスキルがたりないのもあってで
ttp://css-eblog.com/javascript/javascriptpaging.html
を使ってすることにしました。

ありがとうございました。
0095nobodyさん2010/03/26(金) 16:19:18ID:???
一画面に全部のデータを読み込むのかな
ありっちゃありだけど
0096nobodyさん2010/03/26(金) 19:09:52ID:???
yahooや楽天のように、ログインしているとユーザ専用のリンクが見えて、非ログイン時には
その旨をメッセージで表示するにはどうすればよいのでしょう。
(viewで表示分岐するのは分かるんですが、その前のAuthでどうするか)

非ログインユーザはゲストとして自動的に認証させる?という方法しか
思いつかないのですが、スマートな方法はありませんか。
0097nobodyさん2010/03/26(金) 19:14:59ID:???
??
現状でログインしているかどうかの判断で振り分ければいいのでは?
0098nobodyさん2010/03/27(土) 11:07:00ID:???
>>94
全データが多くなければそれでもいいと思う
1.3は触ってないからわからないけど
1.2なら、paginatorヘルパーで出力するときに引数でFORMのパラメータ渡せば
検索条件付のURLによるページングも作れる
0099nobodyさん2010/03/27(土) 13:02:02ID:???
>>96
Auth使ってるなら
$this->Auth->user()
で中身確認できたと思うけど
issetとかで判断すればいいんじゃない?
controllerね
0100nobodyさん2010/03/27(土) 18:21:26ID:???
最近マニュアル読まないで質問する人増えたなあ
基本的なことは一通り書いてあるけどねえ
0101nobodyさん2010/03/27(土) 18:25:10ID:???
自由に質問させてあげればいいんじゃないかな
答えるのは俺らの自由なんだし
0102nobodyさん2010/03/27(土) 19:04:05ID:???
ルビ厨にCakeは欠陥品とか言われてんぞw
http://pc11.2ch.net/test/read.cgi/php/1217883614/447
0103nobodyさん2010/03/27(土) 20:46:53ID:???
別に気にならない
0104nobodyさん2010/03/27(土) 21:30:03ID:???
そもそもrails自体最初はPHPで実装しようと思って失敗してRubyに切り替えられたものなので、
railsユーザーから見たら(Cake)PHPがNGなのは当然と言えば当然のような
0105nobodyさん2010/03/27(土) 23:09:29ID:???
欠陥品じゃない言語・FWなんて歴史上存在したことがない
0106nobodyさん2010/03/28(日) 15:54:08ID:???
んだね。何使ってたって上手くいかないときには「〇〇はクソ!」とかって吠えたくなるときあるもんね。
0107nobodyさん2010/03/28(日) 17:07:23ID:???
それ、むしろカチンときてるっぽぃ
0108nobodyさん2010/03/28(日) 17:17:43ID:???
CakePHPの開発者が離脱したらしいけど
CakePHPに影響あるかね?
0109nobodyさん2010/03/29(月) 09:56:07ID:???
CakePHP 1.3.0-RC3 unleashed
http://bakery.cakephp.org/articles/view/cakephp-1-3-0-rc3-unleashed
0110nobodyさん2010/03/29(月) 09:56:40ID:???
これはstableでるのも近いかも
0111nobodyさん2010/03/29(月) 10:33:52ID:???
cakephpは delete や save などの機能を使う時にデータテーブルのidを参照するようにみえます。
ということは、下記のようにidなしのkeywordsテーブルを作成するのはNGなのでしょうか?

usersテーブル
id, address,

keywords テーブル
name, user_id (二つ合わせてプライマリーキー)

0112nobodyさん2010/03/29(月) 10:39:50ID:???
>>111
複合プライマリーキーはNG
idを別途用意しておくべし
0113nobodyさん2010/03/29(月) 10:53:18ID:???
>>112

やはり。。いろいろやっても上手く動かなくて悩んでました。
ありがとうございます!

実はkeywordsテーブルで name と user_id が重複しないようにしたかったのです。

ローソン(name), 13(user_id)
ローソン(name), 13(user_id)
このように、データが重複しないように。

調べたところ、Cakephpにはそういったデータ用の関数はなさそうです。

直に MySQLの replace を書き込むのが吉でしょうか?
0114nobodyさん2010/03/29(月) 11:08:41ID:???
>>113
1.3ならvirtualFieldのisUniqueでいけそうな気がするが
1.2なら独自バリデートかな
0115nobodyさん2010/03/29(月) 11:13:39ID:???
>>114

1.2です。
やっぱり独自バリデートのコードを使用するのがベストっぽいですね。
ありがとうございます。
0116nobodyさん2010/03/30(火) 00:21:02ID:???
DB側にユニーク制約つければいいんじゃないの?
0117nobodyさん2010/03/30(火) 13:39:29ID:???
cakeでエラー出るやん
0118nobodyさん2010/03/31(水) 12:25:20ID:???
さくらレンタルサーバ、cron設定で上手くいかず、、どなたかお助けくださいませ。

http://domainname.sakura.ne.jp/scrap/users/action
上記のアクションをcron設定したいです。


www/scrap/app/webroot/cron.php
「webrootにcron.phpを作成」
<?php
$_GET['url'] = "/scrap/users/action";
require_once ( dirname( dirname( dirname(__FILE__))) . "/index.php" );
?>


さくらのサーバコントロールパネルのcron設定 【実行コマンド】
cd /home/domainname/www/scrap/app/webroot ; /usr/local/bin/php cron.php


このように設定して、3月31日12時10分など、数分後の設定にして試してみても、上手くいきません。。

【参考にしたURL】
http://www.happyquality.com/2009/11/18/1088.htm
http://www.multiburst.net/ElectricBrain/2009/04/how-to-use-cron-on-cakephp
http://memo.mkmin.com/cakephp/?p=8

0119nobodyさん2010/03/31(水) 16:53:41ID:???
何が上手くいかないのか書けや
0120nobodyさん2010/03/31(水) 21:01:56ID:???
>>119

users/action がcronでちゃんと実行されないのです。。
0121nobodyさん2010/04/01(木) 04:55:05ID:???
>>120
「ちゃんと実行されない」????
神様やスーパーマンじゃないんだから、「ちゃんと実行されない」と書かれてもお前が
何に困っているか?原因は何か?わかるわけないだろ!!!

表示されているエラーメッセージさらせ!

さくらレンタルサーバにも色々あるけど、どれ使ってる???
http://www.sakura.ne.jp/index.php
サーバに負荷掛けない為のcron使用時の制約はどうなってんの???
詳しい情報をさらせ!!!

cronがまったく動かないの?
他の物はcron正常に動くの??
0122nobodyさん2010/04/01(木) 06:55:57ID:???
ちょっと、怖いよw
0123nobodyさん2010/04/01(木) 07:30:37ID:???
ちゃんと叱ってくれる >>121 はとてもマシだと思うぞ
0124nobodyさん2010/04/01(木) 09:32:30ID:???
そう思うが、徹夜明けのイライラをぶつけられてもw
0125nobodyさん2010/04/01(木) 09:43:35ID:???
シカトされるよりは、いいな
優先事項は、問題を解決することだ
0126nobodyさん2010/04/01(木) 09:56:57ID:???
>>118
みんなの優しさに感動したからマジレスする

そのやり方なら、URL叩くと、アクションが実行されるよね?
動くなら、さくらのcronの設定という問題じゃない?
ほかのcronのスクリプトが動くかどうかを試したかな?
分からなければCakePHP関係無しに調べると良いよ
0127nobodyさん2010/04/01(木) 09:59:56ID:???
まずは、
cd /home/domainname/www/scrap/app/webroot ; /usr/local/bin/php cron.php
これが動くのか、確認しようぜ

動くならcakeの問題じゃなく、cronの設定不備だと思う
0128nobodyさん2010/04/01(木) 10:34:58ID:???
まずcronの実行ログ確認しなよ
01291182010/04/01(木) 11:00:53ID:???
みなさん、暖かいアドバイスありがとうございます!

まずはcronの実行ログを確認する方法をさくらで調べてみます。

>>121

さくらのスタンダードです。 制約は1時間に一回のみです。
http://www.sakura.ne.jp/index.php

>>126

http://domainname.sakura.ne.jp/scrap/users/action
のURLを叩くと問題なくアクションは実行されます!


>>127.128

cronの実行ログがどこで見るかわからなかったので、先走ってしまいました。
まずは実行ログを探してきます!
0130nobodyさん2010/04/01(木) 11:33:27ID:???
CakePHPはよくしらんけど、どうしても駄目なら
wget http://domainname.sakura.ne.jp/scrap/users/action
をcronで呼ぶとか
01311182010/04/01(木) 12:05:53ID:???
>>130

レスありがとうございます。なんとか、上手く動きました! dirnameの階層が間違っていたようです。
さらに、cronのエラーメールも、さくらの初期パスワード設定を入力していなかったので届かなかったようです。

最終的な設定は以下です。

www/scrap/vendors/cron/scrape.php
<?php
$_GET['url'] = "/users/action";
require_once dirname(dirname(dirname(__FILE__))) . '/index.php';
?>

【さくらのcron設定】
cd /home/domainname/www/scrap/vendors/cron ; /usr/local/bin/php scrape.php

みなさん、暖かいアドバイスどうもありがとうございました。。
0132nobodyさん2010/04/01(木) 20:16:24ID:???
年度はじめの今日がサイトオープンラッシュだったところが多かったんじゃないでしょうか。
開発者の皆さん、ひとまずお疲れ様です。
皆様は今夜旨い酒が飲めていますように。。。
未だ修羅場の職場より逃避カキコ sage
0133nobodyさん2010/04/01(木) 23:51:38ID:???
FWが開発効率が数倍良くなるから、ウェブ開発で徹夜したりデスマーチになったりと言うことはなくなる!はずだった…
0134nobodyさん2010/04/02(金) 00:37:40ID:???
デスマの原因は開発効率じゃないからな
0135nobodyさん2010/04/02(金) 00:41:07ID:???
自分みたいなデザイナーでもFWのおかげでいろいろいじれるのはありがたい
うけられる仕事の幅も広がった。
でも仕事がどんどん難しくなっていく…勉強ばっかりだ
0136nobodyさん2010/04/02(金) 03:37:20ID:???
オープン・リフレッシュは3月最終週にした

・・・はずだった
0137nobodyさん2010/04/03(土) 07:39:42ID:???
>>133
日本人の質を低下させたのは実はゆとり教育などではなく馬鹿でもチョンでも学士様に仕立て上げる悪平等教育なんだよ
今やむしろチョン様大歓迎だろ
昔の日本はドイツ式で大学へ行くのは本当に優秀な人間だけで普通の子は小学校へも行かず奉公へ出たもんだ
戦前世代だとそういう中から優秀な経営者や作家が生まれているだろ
脱ゆとりも結構だけどこの悪平等の是正なくして日本は再生しないよ
0138nobodyさん2010/04/03(土) 22:20:39ID:???
>>137
小さい時から、目標がある人間は、それで良いが、
やりたい事に気がついて、勉強できる環境が、ないのも微妙だろ。。。

実際、ほんとにやる気がある人間は、30でも40でも勉強出来る環境に行くけど、
全員そんなに意思は固くない。
0139nobodyさん2010/04/05(月) 16:39:35ID:???
デザイナーというか、HTMLコーダーさんと連携するときどうしてる?
一旦HTMLコーディングしたものを、こっちでVIEWのテンプレートに書き換え?
0140nobodyさん2010/04/05(月) 16:44:30ID:???
>>139
それが普通でしょ
デザイナーにphpを強要するの?
0141nobodyさん2010/04/05(月) 18:45:04ID:???
1.2.6ですが、ブログチュートリアルを参考に簡単な
マスタテーブルの表示・追加・削除画面を作っているんですが
Modelのsaveが実行されません。(INSERTされない)

function add(){
if (!empty($this->data)) {
if ($this->JimushoMaster->save($this->data)) {
$this->flash('Your post has been saved.','/jimusho_masters');
}
}
}
こんな感じで行ってるんですがナニが悪いんでしょう?
モデルJimushoMasterはid(int, unsigned, auto_increment)とname(varchar)しか
ない簡単なものです。

add.ctpでは

<h1>事務所追加</h1>
<?php
echo $form->create('jimusho_master');
echo $form->input('name');
echo $form->end('保存');
?>

とだけしています。
0142nobodyさん2010/04/05(月) 18:55:28ID:???
>>141
これだけじゃ詳しくは分からんけど、validateに失敗しているんじゃない?
debug($this->JimushoMaster->invalidFields());
をsave失敗時に実行してみたら何か入ってるんじゃないかな

saveされないというのはSQLが実行されずにaddのフォームが表示されるんだよね?
0143nobodyさん2010/04/05(月) 18:58:10ID:???
あとついでだけど、今のうちに規約に沿う癖をつけといた方が良いよ
Office / offices / OfficesController
0144nobodyさん2010/04/05(月) 22:59:55ID:1CfLL9NS
入力値のバリデーションを行なう前に
半角に変換したいのですが、
そういう処理はどう書けばいいでしょうか?
0145nobodyさん2010/04/05(月) 23:16:53ID:???
バリデーションに投げる前の段階でPHPで書けばいいと思うよ
0146nobodyさん2010/04/05(月) 23:20:10ID:???
beforeValidateでいいんじゃないの?

とにかくマニュアルは一通り目を通しておこうよ。
覚えなくてもいいけど、どこでどんな処理ができる・・・ってだいたい見当つくでしょ。
0147nobodyさん2010/04/05(月) 23:23:16ID:???
コントローラの中でモデルに渡す前にフィルタかけるしかないですね・・
0148nobodyさん2010/04/06(火) 01:21:23ID:???
146から147の流れになることがよくわからん
0149nobodyさん2010/04/06(火) 04:05:02ID:???
beforeValidateはモデル内のことなので
中でdataを加工してもviewまで引っ張れないのですよ
0150nobodyさん2010/04/06(火) 09:43:10ID:???
>>149
何でviewに変換後のデータが必要かは知らないけど、それが書いてなきゃ分からんでしょ

やろうと思えばModel内で加工することもできるし
0151nobodyさん2010/04/06(火) 18:16:24ID:???
>>142さん

ご助言ありがとうございます。
saveの返値は1でしたので成功しているようです。
が、やはりデータベースにINSERTされていないようです。

念のため、save後、debug($this->JimushoMaster->invalidFields());
してみましたが空っぽなのでバリデートの失敗ではないようです。

レールから脱線しますが、
$this->JimushoMaster->query('INSERT INTO jimusho_masters (name) VALUES (\''.$this->data['jimusho_master']['name'].'\');');
のように無理やりSQLを指定して実行すると問題なくINSERTされました。

うーん、ナニが悪いんでしょう。ケーキ食べ始めなのでわからんす。
0152nobodyさん2010/04/06(火) 21:06:46ID:???
>>151
期待通りの動きをしないときはとにかくdebug()をあちこちにぶっ差して
どういうデータが来てるか見る。あとdebugモード2の時のSQLダンプをよく読むのがいいです。
0153nobodyさん2010/04/07(水) 02:07:26ID:???
debug()はよく使うのだけど、boolean型もしっかりとどの値か表示してほしいな
0154nobodyさん2010/04/07(水) 10:12:26ID:???
>>151
ん?ということは、リダイレクトしているということ?
だったら、発行されたSQLとか見て原因探ればいいんじゃない?debugは2にしてるよね?

Insertされないというのをもうちょっと具体的に書いてみてちょ
01551512010/04/07(水) 16:13:32ID:???
すいません、Cake焼き始めなものでよくわかってなく
説明も下手ですね。

if( $this->JimushoMaster->save($this->data) ){
$this->redirect('/jimusho_masters');
}else{
debug($this->JimushoMaster->invalidFields());
}

現在のコードはこんな感じです。
実行すると、レコードが追加されずに/jimusho_mastersにリダイレクトします。

saveは成功したという結果が返っているんですが、
レコードは増えていない画面に戻ります。

Validateが失敗していれば、エラーがでるはずですが
なにも表示されないのでエラーではないようです。

デバッグモードで画面下にクエリが出るんですが
そこにはINSERT文がないので、saveを呼び出しても
INSERTクエリが実行されてないようです。
0156nobodyさん2010/04/07(水) 17:24:09ID:???
>>155
読み返してみた。
第一引数はモデル名じゃなかったかな?
echo $form->create();
or
echo $form->create('JimushoMaster');
にしてみてどう?
01571512010/04/07(水) 17:41:43ID:???
>>156さん

なおりました!ありがとうございます!
なるほど、$formヘルパでcreateするときにモデル名を
指定するんですね。やっと解決できました。

ご助言ありがとうございます!
0158nobodyさん2010/04/07(水) 18:17:38ID:???
>>157
よかった。今後は英単語で命名するようにねw
0159nobodyさん2010/04/09(金) 01:42:43ID:???
キーボードの半角/全角漢字の列にある
1〜0までの数字を使ってる人いる?
1を押したときにShift押さなくても!が出るようにしてない人て
頭おかしいよね
0160nobodyさん2010/04/09(金) 04:23:45ID:???
ファイル(画像とか)のアップロード管理何つかってますか?
追加・更新・削除できるものでお勧めあったら教えてください
MediaPluginは更新が出来なかった
0161nobodyさん2010/04/09(金) 09:54:40ID:???
>>159
うん。頭おかしいと思う。

>>160
Mediaplugin更新できるでしょ。
ファイルアップロード系は導入するのが面倒で複雑だけど、
がんばってMediapluginを使うようにした方がいい。
自作するよりスピーディーだし、かなりうまく設計されていると思う。

そのレベルの話なら公式で聞いてみたらどうでしょ。
0162nobodyさん2010/04/09(金) 21:11:05ID:???
>>161 ありがと。もうちょっと試行錯誤してみます。
0163nobodyさん2010/04/10(土) 00:06:40ID:XPBwMnMW
layoutに変数を渡したいのですが、
どうやればいいですか?
0164nobodyさん2010/04/10(土) 00:09:03ID:???
$this->hogeに渡すと思い込んでましたが
setするんですね
失礼しました
0165nobodyさん2010/04/10(土) 14:31:33ID:???
1994年生まれの人集まれ!★3
http://gimpo.2ch.net/test/read.cgi/nendai/1269784099/
0166nobodyさん2010/04/11(日) 21:25:47ID:???
Authコンポーネントで質問です。

http://www.facebook.com/

このfacebookのindexページのように、ログイン画面と登録画面をindexに置きたいです。

Authだと、Auth用のusersコントローラを独立して作らないといけない? みたいなのですが、
自分の目的にはAuthを使えるでしょうか?

FaceControllers内
function index, functon edit, function add. function login, function logout,
などと、ひとつのコントローラに納めないとできないのではないかと思ったりして悩んでおります。

たぶん大きな勘違いかと思うのですが、どういうイメージでAuthを使えばよいのでしょうか?
0167nobodyさん2010/04/11(日) 21:46:51ID:???
トップはフォームだけで、フォームからUsersコントローラーのaddアクションを呼べばいいのでは?
0168nobodyさん2010/04/12(月) 09:52:15ID:???
>>167

ありがとうございます。
いろいろと試してみます。
0169nobodyさん2010/04/12(月) 11:19:42ID:???
Authコンポーネントを使うと、

Cannot modify header information - headers already sent by

というエラーが出てしまいます。

調べたところ、

<?php ?>の上下の改行をなくす、php.iniでoutput_bufferingをonにする。
などの解決方法がありますが、試しても上手く行きませんでした。

layoutもデフォルトなのでheaderの部分を別個書いた記憶もなく、
ほとほと困り果てました。


なにかほかに解決方法はないものでしょうか?
■ このスレッドは過去ログ倉庫に格納されています