Extbaseの作成日時の取得方法と使い方


Extbaseでは、オブジェクトの作成日時はデータベーステーブルのカラムとして保存されます。この情報を取得するために、次の手順を実行できます。

  1. Extbaseのモデルクラスに、作成日時を格納するためのプロパティを追加します。例えば、"creationDate"という名前のプロパティを作成します。
/
 * @var \DateTime
 */
protected $creationDate;
  1. モデルクラスに、作成日時を取得するためのゲッターメソッドを追加します。
/
 * @return \DateTime
 */
public function getCreationDate()
{
    return $this->creationDate;
}
  1. データベーステーブルに作成日時を保存するためのカラムを作成します。TYPO3のデータベースマイグレーションツールを使用して、テーブル構造を変更する方法はさまざまですが、ここでは具体的な手順を説明しません。

  2. ブログ投稿を作成するコントローラまたはサービスクラスで、作成日時を取得します。

use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;
use TYPO3\CMS\Extbase\Persistence\ObjectStorage;
// ...
/
 * @var \TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper
 * @inject
 */
protected $dataMapper;
// ...
public function createPost()
{
    // ブログ投稿の作成処理
    $post = new \Vendor\Extension\Domain\Model\Post();
    $post->setTitle('ブログ投稿のタイトル');
    $post->setContent('ブログ投稿の内容');
    $post->setCreationDate(new \DateTime());
    // 作成日時をデータベースに保存
    $this->dataMapper->update($post);
    // ...
}