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

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

レス数が1000を超えています。これ以上書き込みはできません。
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
0974nobodyさん2010/07/22(木) 19:56:52ID:???
>>973
インクリメントビヘイビアというのがある
それをそのまま使うか、それを参考に
0975nobodyさん2010/07/22(木) 20:43:44ID:???
>>974
Thanx!!
検索用語が難しくて全然探せなかったので助かりました。

$this->Article->doIncrement($id, 1, 'votes');

Increment Behavior (Articles) | The Bakery, Everything CakePHP
http://bakery.cakephp.org/articles/view/increment-behavior

検索用: フィールド +1 カウンター SQL field +1 counter

と思ってソースみたら、結局findByIdしたものを +1 しているからSQLは2回
投げる気がする。それだったら意味ないっぽい。
上記リンクのコメントのリンク先にあるやり方の方が良さそうかな。
$content->updateAll(array(‘num_of_purchases’ => ‘num_of_purchases+1′)
0976nobodyさん2010/07/22(木) 20:44:53ID:???
または、これかな。

app_model.php

function UpdateHits($id)
{
//debug ($this->useTable);exit;
$FieldToInc = 'views';
$this->execute("UPDATE $this->useTable SET $FieldToInc=$FieldToInc+1 WHERE id=$id");
}
0977nobodyさん2010/07/22(木) 21:22:06ID:???
単純にSQL文で書けば
UPDATE table_name SET count=count+1

なのに、やけにめんどくさいよね。仕様だから仕方ないけど
0978nobodyさん2010/07/22(木) 22:04:37ID:???
そう思ったらquery()つかえばよろし
0979nobodyさん2010/07/22(木) 22:55:12ID:???
まぁ、そこら辺はCakeは遠回りするからね。
シンプルなものなら直書きでも良いんじゃないか。
0980nobodyさん2010/07/23(金) 01:12:40ID:???
>>977
それは排他制御が・・

Cakeのは大丈夫なのか、といわれると知らんが。
0981nobodyさん2010/07/23(金) 01:41:37ID:???
saveしようとして
$dat = array('id'=>null,'txt'=>'AAA')
を table->save($dat)
としたら、
クエリの内容が
INSERT INTO "table" ("id", "txt") VALUES (NULL,'AAA')
となってしまって、
idはnullじゃ駄目なんだよ。とエラーが返ってきます。

通常idがnullだと、クエリからidは外してくれるんですが
何故かidが外れません

何か原因で考えられる事はあるでしょうか
0982nobodyさん2010/07/23(金) 01:43:22ID:???
ならidの辞書型自体を指定しなけりゃいいんじゃね?
0983nobodyさん2010/07/23(金) 02:03:22ID:???
確かにそうなのですが、
これまではidを指定していても自動で外してくれていたんです。

特定の場所だけで発生しています
0984nobodyさん2010/07/23(金) 02:06:15ID:???
これまでって何だよ
0985nobodyさん2010/07/23(金) 02:10:46ID:???
エスパー召喚魔法唱えてるんだろ。
人間に方は放置しておk
0986nobodyさん2010/07/23(金) 02:13:24ID:???
>>981
>>952じゃないの?
0987nobodyさん2010/07/23(金) 02:17:47ID:???
いっそソース一式全部晒してくれれば
バグを見つけてくれる人もいるだろう
0988nobodyさん2010/07/23(金) 02:33:57ID:???
どうでもいいけどチュートリアルくらいはこなしてから人に聞いてるんだろうな
0989nobodyさん2010/07/23(金) 02:37:40ID:???
モデル周りのマニュアルちゃんと読めばなんてこと無いことを苦労してる気がする。
0990nobodyさん2010/07/23(金) 02:39:23ID:???
>>980
この場合の排他制御ってどういう意味?
MySQLならUPDATEしていれば問題ないよね?

incrementの方は排他制御的に問題あると思うけど
0991nobodyさん2010/07/23(金) 03:09:35ID:???
そもそも+1したいってなんなの?
システム変更でデータ移行するから一気に+1したいのか
取り出した値を常に+1したいのか
あーめんどくせーどうでもいいや

ここ最近の質問って全部同一人物だろ
ぐだぐだいってないでCakeやろうと思ったなら
オフィシャルやらチュートリアルやらAPIのドキュメントやら読めよ
嫌なら何も始めるな
0992nobodyさん2010/07/23(金) 04:09:29ID:???
>>991
同一人物じゃないが
UPDATE table_name SET count=count+1 をしたい

>ぐだぐだいってないでCakeやろうと思ったなら
>オフィシャルやらチュートリアルやらAPIのドキュメントやら読めよ

どこに書いてあるの? どこにも書いてない、できないから上記の答えになっているんだろ?
日本語が理解できないならまず日本語を勉強してこいよ
0993nobodyさん2010/07/23(金) 04:30:20ID:???
UPDATE 〜 のSQL文書いたのは俺だけどなw

てか、count+1する場面って結構あると思うけどな。
在庫管理にカウンターに投稿数の加算とか。

チュートリアル見て質問してるだろうけど、
翻訳が変だったり、不十分だったりするから人に聞くんでしょ。
0994nobodyさん2010/07/23(金) 08:36:28ID:???
>>992
ならそれをModel->query()で問題ないっていってんだろ
しつけーんだよアホか
0995nobodyさん2010/07/23(金) 08:49:45ID:???
「cakephp increment」で検索かけるとすぐに件のビヘイビア見つかって解決。
検索できるようになろうね。

それに対して>>977
>単純にSQL文で書けば
>UPDATE table_name SET count=count+1
>
>なのに、やけにめんどくさいよね。仕様だから仕方ないけど

なんだけど、これ俺勘違いして質問者が言ってると思ってた
だからそう思うならquery()で書けばいいって書いたわけ。
0996nobodyさん2010/07/23(金) 08:53:56ID:???
次スレ立ててくるわ
0997nobodyさん2010/07/23(金) 09:17:12ID:???
【PHP】フレームワーク CakePHP 9ホール目【v1.3】
http://pc11.2ch.net/test/read.cgi/php/1279844006/

どぞー
0998nobodyさん2010/07/23(金) 14:52:49ID:???
>>994
バカか?
queryでできることには誰も反論してないだろ。誰がどこでそれに問題があるって言ったと思っているんだよ。


マニュアル等に書いてないのも事実だろ?
まず日本語の読解能力つけろよ

そんな話はしてなくて今は排他処理のことを聞いているんだよ。
0999nobodyさん2010/07/23(金) 15:25:43ID:???
逆ギレの現場を見た

w
1000nobodyさん2010/07/23(金) 15:50:25ID:???
次いってみよー
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。