UploadDate
(常に現在の日付に設定されています)とintのTotal
の2つの変数を格納するAdminUpload
というDataObjectクラスがあります。アップロード時にデータオブジェクト関数を呼び出す(SilverStripe)
関数updateUploads()
が呼び出され、現在の日付が格納され、呼び出されるたびにTotal
が1ずつインクリメントされます。誰かが管理者ビューで新しい画像をアップロード
<?php
class AdminUpload extends DataObject {
private static $db = array(
'UploadDate' => 'Date',
'Total' => 'int'
);
// Tell the datagrid what fields to show in the table
private static $summary_fields = array(
'ID' => 'ID',
'UploadDate' => 'Current Date',
'Total' => 'Version Number'
);
public function updateUploads(){
$uploadDate = SS_Datetime::now();
$this->UploadDate = $uploadDate;
$this->Total++;//increment the value currently stored in the database each time
$this->write();
}
}私はあるしたいこと
は、その後、updateCache()
機能はonAfterWrite()
プロセス中に呼び出されます。しかし、データベースに1つのエントリしか残したくないので、イメージをアップロードするたびに、AdminUpload
データベーステーブルに1つのエントリが必要です。私はこのようなSilverStripeで関数呼び出しを実行しようとしましたことがありません
public function onAfterWrite(){
$updateGallery = parent::onAfterWrite();
$adminUploading = AdminUpload::get();
$adminUploading -> updateUploads();
return $updateGallery;
}
- 私はupdateUploads()関数への各呼び出しで、データベースに新しいエントリを追加するつもりはないので、それは十分に単純だと思われます、それは私が立ち往生している場所です。すべてのヒントは役に立ちます...