diff options
-rw-r--r-- | app/Model/Metadata.php | 23 | ||||
-rw-r--r-- | doc/plugin-metadata.markdown | 5 |
2 files changed, 27 insertions, 1 deletions
diff --git a/app/Model/Metadata.php b/app/Model/Metadata.php index 83c8f499..ae7475c4 100644 --- a/app/Model/Metadata.php +++ b/app/Model/Metadata.php @@ -95,4 +95,27 @@ abstract class Metadata extends Base return ! in_array(false, $results, true); } + + /** + * Remove a metadata + * + * @access public + * @param integer $entity_id + * @param string $name + * @return bool + */ + public function remove($entity_id, $name) + { + + $this->db->startTransaction(); + + if (! $this->db->table(static::TABLE)->eq($this->getEntityKey(), $entity_id)->eq('name', $name)->remove()) { + $this->db->cancelTransaction(); + return false; + } + + $this->db->closeTransaction(); + + return true; + } } diff --git a/doc/plugin-metadata.markdown b/doc/plugin-metadata.markdown index 0249e60c..1f4bfa2b 100644 --- a/doc/plugin-metadata.markdown +++ b/doc/plugin-metadata.markdown @@ -7,7 +7,7 @@ Metadata are custom fields, it's a key/value table. For example your plugin can store external information for a task or new settings for a project. Basically that allow you to extend the default fields without having to create new tables. -Attach metadata to tasks +Attach metadata to tasks and remove them ------------------------ ```php @@ -23,6 +23,9 @@ $this->taskMetadata->exists($task_id, 'my_plugin_variable'); // Create or update metadata for the task $this->taskMetadata->save($task_id, ['my_plugin_variable' => 'something']); + +// Remove a metadata from a project +$this->projectMetadata->remove($project_id, my_plugin_variable); ``` Metadata types |