私はインポーターを作成していますが、実際にオブジェクトを作成することに悩まされています。具体的には、DateTimeフィールドに問題があります。私はblogArticle
というクラスを持っており、Pimcoreのデモデータがブログ記事のために使用するのと同じように使っています。Pimcore:オブジェクトのDateTimeクラスフィールドの設定
$newPost = new Object\BlogArticle();
$newPost->setCreationDate(time());
$newPost->setPublished(true);
$newPost->setText($text); // text input field
$newPost->setTitle($title); // text input field
$newPost->setDate($date); // datetime input field
$newPost->setKey(\Pimcore\File::getValidFilename($key));
$newPost->setParentId($id);
$newPost->save();
私は取得しています正確なエラーは次のとおりです。
Whoops\Exception\ErrorException thrown with message "Call to a member function getTimestamp() on a non-object"
Stacktrace:
#0 Whoops\Exception\ErrorException in /.../pimcore/models/Object/ClassDefinition/Data/Datetime.php:73
私は離れた値がこのフィールドタイプのためにデータベースに格納する方法から、ドキュメントに何かを見つけることができません。フィールド・タイプごとにクラス・フィールドに値を適切に割り当てる方法については、文字通りゼロのドキュメント。これを解決するためのイゴール・ベンコへ
SOLUTION
ありがとう!
$newPost_date = new DateTime("2016-07-01 12:10:37");
$newPost->setDate($newPost_date);
私はPimcore 4のクリーンインストールバージョンを使用しました。この設定をチェックして報告します。ありがとう。 – RedYetiCo
整数を割り当てることは、このフィールド値を設定する正しい方法ではありませんか?フィールドの設定に正しい入力形式について説明しているドキュメントには、私が見ていないセクションがありますか? – RedYetiCo
これを参照してください:https://www.pimcore.org/wiki/pages/viewpage.action?pageId=16854212 "データベースでは、そのデータはUNIXタイムスタンプとして保存され、INTデータ列に格納されます。 DateTimeオブジェクトによって表されます。それは本当に明らかではありません。しかし、あなたの最善の策は、setDateメソッドに何を渡すことができるかを調べることです。良いIDEならどれでもヒントを与えるべきです。 –