では動作しません。モデルを保存しようとすると、常に空になります($workspace->save()
)。検証が失敗したため( "created_atは空白にできません")、保存できません。このクラスに特別なものは何もありません。何も上書きされません。何が問題なの?TimestampBehaviorは、私は<a href="http://www.yiiframework.com/doc-2.0/yii-behaviors-timestampbehavior.html" rel="nofollow noreferrer">TimestampBehaviour</a>と以下のクラスを持っているので、失敗の検証
-2
A
答えて
0
検証ルールが問題を引き起こしたことが判明しました。予期せぬことに、私はすべてが正しいと考えていたからです。
public function rules() {
return [
[['id', 'name', 'created_at'], 'required'],
[['id'], 'int'],
[['name'], 'string', 'max' => 100],
[['created_at' ], 'datetime'],
];
}
created_at
が必要あってはならない - それが問題だった:これらは私のルールでした。
それもdocumentedです:属性値は、この動作によって自動的に設定されますので、彼らは通常、ユーザ入力されていないため、検証すべきではない 、
すなわちのcreated_atとupdated_atのはで表示されませんモデルのrules()メソッド
$workspace->save()
が実行されると、最初の手順は検証です。そしてそのステップの後で、EVENT_BEFORE_INSERT/EVENT_BEFORE_UPDATEがトリガされ、TimestampBehaviourが指定フィールドに入力されます。これは、検証が成功した場合にのみ発生します。 (var_dumpを実行すると、空のcreated_atが表示されます。)あまりにも遅れて、検証がすでに行われており、検証エラーが発生しています。
ルールからcreated_atを削除することをお勧めします。もちろん、他のアプローチも可能です(例えば、検証を無効にするか、save()が呼び出されたときに検証する必要があるプロパティを渡します)。
0
は怒鳴る
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'create_time',
'updatedAtAttribute' => 'update_time',
'value' => new Expression('NOW()'),
],
];
}
のような振る舞いを追加して、あなたのモデルクラスで安全なレコードを追加します。
public function rules()
{
return array(
array('create_time,update_time', 'safe'),
);
}
関連する問題
- 1. 私は<a href="https://omeka.org/" rel="nofollow noreferrer">Omeka</a>の私の元のインスタンスを持つリモートサーバー持って
- 2. の画像は、私はgithubのページに<a href="http://calebbertrand.github.io" rel="nofollow noreferrer">website</a>を持って
- 3. は、私は(<a href="http://jsonlint.com/" rel="nofollow">http://jsonlint.com/</a>からテスト)以下の有効なJSONデータを持っているJSON
- 4. PHP LDAP - のmemberOfを表示私は(<a href="https://samjlevy.com/archives/" rel="nofollow">https://samjlevy.com/archives/</a>)から、以下のようなスクリプトを持っているグループ
- 5. .htaccessファイルは、私はDebianの8の上だと私は<a href="http://my-domain.unice.fr/social" rel="nofollow">http://my-domain.unice.fr/social</a>でウェブサイトを持っていると私は私が持っている私の.htaccessで<a href="http://my-domain.unice./" rel="nofollow">http://my-domain.unice./</a></p> <p>でこれをリダイレクトしたい
- 6. フォワードドメインの後に302リダイレクトを以下、以降は<a href="http://example.com" rel="nofollow">http://example.com</a>にループを
- 7. 私は<a href="http://doc.qt.io/archives/qt-4.7/qtcpserver.html" rel="nofollow">QTcpServer</a>のサブクラスを持ってQTcpServer
- 8. Tabキーは、私が<a href="http://%20http://tulipindia.biz/associate_form.php" rel="nofollow">this form</a>を持って
- 9. ハイライトは、私は次のコードを持っている<a href="https://github.com/mojombo/jekyll" rel="nofollow">jekyll</a></p> <p>で<a href="http://pygments.org/" rel="nofollow">pygments</a>を使用したい
- 10. jQueryの検証equalToは、私はここに私のGrailsアプリケーションで<a href="https://jqueryvalidation.org/" rel="nofollow">jQuery Validate plugin</a>、 を使用していますGrailsの
- 11. アクセスReduxの状態私は<a href="https://reactnavigation.org/" rel="nofollow noreferrer">React-Navigation</a>を使用して、以下のナビゲーターを持つナビゲーション
- 12. 私は<a href="http://docs.scipy.org/doc/numpy-1.10.1/user/basics.subclassing.html" rel="nofollow">numpy's documentation</a>を以下のnumpyののndarrayから派生したクラスを作成した
- 13. FacebookのJS SDKは、私が<a href="http://apps.facebook.com/insideny/" rel="nofollow">http://apps.facebook.com/insideny/</a></p> <p>でFBのキャンバスアプリを持っているFB.Login
- 14. 式のテンプレートは次のように私は<a href="https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern" rel="nofollow">CRTP</a>基本クラスを持って打ち鳴らす
- 15. は私が<a href="https://cloud.google.com/pubsub/docs" rel="nofollow noreferrer">Pub/Sub</a>トピック+サブスクリプションを持っているし、消費し、<a href="https://cloud.google.com/dataflow/docs" rel="nofollow noreferrer">Dataflow</a>にサブスクリプションからの無制限のデータを集計するデフォルトのトリガー
- 16. CSS:私は<a href="http://test.doig.com.au/MHM/" rel="nofollow noreferrer">this site</a>にこの下線
- 17. は、私は<a href="http://en.wikipedia.org/wiki/Microsoft_Blend" rel="nofollow noreferrer">Expression Blend</a> 4(<a href="https://en.wikipedia.org/wiki/Windows_Phone" rel="nofollow noreferrer">Windows Phone</a> 7のために)、私は(資産)のすべての行動がロードされている起動すると
- 18. GL_COLORは、私は次のコードスニペットを持って<a href="http://www.swiftless.com/tutorials/glsl/3_glcolor.html" rel="nofollow">http://www.swiftless.com/tutorials/glsl/3_glcolor.html</a>で探していますWebGLの
- 19. キャプチャは、私は自分のサイト上のキャプチャを持って<a href="http://sketchedneo.com/jointest.php" rel="nofollow">http://sketchedneo.com/jointest.php</a></p> <p>を
- 20. は、私は「幸せなアレックスをインストール徒党」以下のエラーで失敗し<a href="http://www.yesodweb.com/book/TXKGPHUZXDLYRGF" rel="nofollow">http://www.yesodweb.com/book/TXKGPHUZXDLYRGF</a></p> <p>コマンドで指定されたインストール手順に従ってくださいイェソド
- 21. は、私は以下のクラスを持っているHashSetの
- 22. は、私がこの<a href="http://pastebin.com/B8ERBD4L" rel="nofollow">SQL</a></p> <p>を持っているか、SQLサーバー
- 23. fullpagejsは - 私は<a href="https://github.com/alvarotrigo/fullPage.js#fullpagejs" rel="nofollow noreferrer">fullpagejs</a>を使用しているテンプレート
- 24. Firebase JS入手トークンは、()私は<a href="https://firebase.google.com/docs/cloud-messaging/js/client" rel="nofollow">Google's Documentation</a>に基づいて、次のコード、持っているトークン
- 25. は、私は以下のコードとデータから作られている次のグラフ<a href="https://i.stack.imgur.com/CtcGD.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/CtcGD.png" alt="enter image description here"></a></p> <p>を持っている多面的なggplot
- 26. 城ウィンザー:<a href="http://mef.codeplex.com/" rel="nofollow">MEF</a>では既存のオブジェクト
- 27. 私はターミナルで<a href="http://beginrescueend.com/rvm/install/" rel="nofollow">http://beginrescueend.com/rvm/install/</a>と<a href="http://beginrescueend.com/rvm/basics/" rel="nofollow">http://beginrescueend.com/rvm/basics/</a></p> <p>上のすべての指示に従ってきたルビー
- 28. 私は、次の必要とする<a href="https://www.freecodecamp.com" rel="nofollow">FCC</a>でJavaScript
- 29. は<a href="http://codeigniter.com/user_guide/libraries/table.html" rel="nofollow noreferrer"><strong>CodeIgniter</strong></a>に以下のコードを使用することによりCodeIgniterの
- 30. $私は以下のように<a href="https://github.com/sebastianha/angular-bootstrap-checkbox" rel="nofollow">angular-bootstrap-checkbox</a>を使用しています