メイン CakePHP モデル(Model)
連続したsaveメソッドの使い方について | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| yando | 投稿日時: 2008-2-12 8:42 |
一人前 ![]() ![]() 登録日: 2006-8-7 居住地: 投稿: 99 |
連続したsaveメソッドの使い方について 連続したsaveメソッドの使い方についての投稿されたブログです。
連続してsaveメソッドを利用すると2件目以降がUPDATEになってしまう場合はmodelのcreateメソッドを呼びます。 http://ameblo.jp/glueck-06/entry-10072039795.html idにNULLを代入する事でも同様の効果が得られたかと思います。 |
| ken822 | 投稿日時: 2008-2-16 7:08 |
Baker ユーザ ![]() ![]() 登録日: 2008-1-29 居住地: クロアチア 投稿: 30 |
Re: 連続したsaveメソッドの使い方について 自分もバッチ処理の部分でこれに引っかかりました。
初心者が引っかかる部分ですよね |
| hide99 | 投稿日時: 2008-6-16 6:40 |
一人前 ![]() ![]() 登録日: 2007-7-2 居住地: 投稿: 106 |
Re: 連続したsaveメソッドの使い方について cakephp 1.2ですが、
create メソッドを使ったら modified created が、正常に取得できずに 0000-00-00- のままになってしまいました。 なので id に null を突っ込むのがいいかもしれませんね。 |
| yando | 投稿日時: 2008-6-16 9:17 |
一人前 ![]() ![]() 登録日: 2006-8-7 居住地: 投稿: 99 |
Re: 連続したsaveメソッドの使い方について コードを示してもらえれば誰かがバグ報告するかも・・・。
見たところ上がっていないようです。 https://trac.cakephp.org/search?q=create+save+created+&noquickjump=1&ticket=on |
| hide99 | 投稿日時: 2008-6-16 15:33 |
一人前 ![]() ![]() 登録日: 2007-7-2 居住地: 投稿: 106 |
Re: 連続したsaveメソッドの使い方について yandoさん、こんにちわ。
では、お言葉に甘えて。 cakephp1.2にて × created.modified が 0000-00-00 になってしまう例。 ○これなら正常に created , modified が登録される |
| yando | 投稿日時: 2008-6-17 9:39 |
一人前 ![]() ![]() 登録日: 2006-8-7 居住地: 投稿: 99 |
Re: 連続したsaveメソッドの使い方について もうすこし詳細に書いたほうがよいように思ったんですが、とりあえず報告"だけ"しておきました。
なにかおかしいようであれば続報をお願いします。 https://trac.cakephp.org/ticket/4929 |
| mogura | 投稿日時: 2008-6-17 11:01 |
Baker スタート ![]() ![]() 登録日: 2008-6-17 居住地: 東京 投稿: 19 |
Re: 連続したsaveメソッドの使い方について 自分なりの解決法だと、saveの前に
$this->create(null); か $this->create(false); を行うことで回避できました。あまり検証してないので間違ってるかもしれません・・・・ |
| MASA-P | 投稿日時: 2008-6-17 12:51 |
Cake 職人 ![]() ![]() 登録日: 2008-1-24 居住地: 投稿: 224 |
Re: 連続したsaveメソッドの使い方について ちょっと簡単にソースを見てみたんですが、Model:create()では、
$this->schemaから作りだしたデフォルト値と引数で与えたarrayを データセットしているのですが、falseやnullではこの処理が省略 されているので、そこら辺がデフォルト($data = array())との 違いになっています(ちなみにβはこの部分は問答無用でやって いて、RCで改変されています)。 つまり、デフォルト値の場合にこの書き換えが起きるため、それが 引き金になって日付が0になるっぽいです。何故0になるかは デバッグしてみないと分からないのですが、不具合はこの辺に ありそうです($this->schemaが壊れてる?)。 使われ方を考えると、Model:create()の$dataのデフォルト値は null(false)の方がいいような気がしますね。 |
| yando | 投稿日時: 2008-6-17 14:46 |
一人前 ![]() ![]() 登録日: 2006-8-7 居住地: 投稿: 99 |
Re: 連続したsaveメソッドの使い方について https://trac.cakephp.org/ticket/4929
情報不足で閉じられてしまいました。 > there are tests in model.test.php that cover this. Please supply a diff against model.test.php to show the failing case. model.test.php内のテストでは問題ないとの事なので、model.test.phpを改変する形で再現コードを出せればよいと思います。 確認お願いできますか? |
| yando | 投稿日時: 2008-6-18 0:27 |
一人前 ![]() ![]() 登録日: 2006-8-7 居住地: 投稿: 99 |
Re: 連続したsaveメソッドの使い方について 下記のテストケースは通りました。
単体の動きでみると大丈夫なようにも見えます。 hideさんのもともとのコード、よくみると一番最初にsaveが呼ばれる前にcreateが呼ばれていない気がしますが。 さてどうでしょうか? |
| (1) 2 » | |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |





