public function PrivateMessageThread::delete in Private Message 8.2
Same name and namespace in other branches
- 8 src/Entity/PrivateMessageThread.php \Drupal\private_message\Entity\PrivateMessageThread::delete()
Deletes an entity permanently.
Throws
\Drupal\Core\Entity\EntityStorageException In case of failures an exception is thrown.
Overrides EntityBase::delete
File
- src/
Entity/ PrivateMessageThread.php, line 216
Class
- PrivateMessageThread
- Defines the Private Message Thread entity.
Namespace
Drupal\private_message\EntityCode
public function delete(AccountInterface $account = NULL) {
if ($account) {
$this
->updateLastDeleteTime($account);
$last_creation_timestamp = $this
->getNewestMessageCreationTimestamp();
$query = \Drupal::database()
->select('pm_thread_history', 'pm_thread_history')
->condition('thread_id', $this
->id());
$query
->addExpression('MIN(delete_timestamp)', 'min_deleted');
$min_deleted = $query
->execute()
->fetchField();
if ($min_deleted >= $last_creation_timestamp) {
$this
->deleteReferencedEntities();
parent::delete();
}
}
else {
$this
->deleteReferencedEntities();
parent::delete();
}
$this
->clearCacheTags();
}