Pimcore\Model\Asset\Dao::update PHP Метод

update() публичный Метод

Update data from object to the database
public update ( )
    public function update()
    {
        try {
            $this->model->setModificationDate(time());
            $asset = get_object_vars($this->model);
            foreach ($asset as $key => $value) {
                if (in_array($key, $this->getValidTableColumns("assets"))) {
                    if (is_array($value)) {
                        $value = \Pimcore\Tool\Serialize::serialize($value);
                    }
                    $data[$key] = $value;
                }
            }
            // metadata
            $this->db->delete("assets_metadata", "cid = " . $this->model->getId());
            $metadata = $this->model->getMetadata();
            $data["hasMetaData"] = 0;
            if (!empty($metadata)) {
                foreach ($metadata as $metadataItem) {
                    $metadataItem["cid"] = $this->model->getId();
                    unset($metadataItem['config']);
                    if ($metadataItem["data"] instanceof Model\Element\ElementInterface) {
                        $metadataItem["data"] = $metadataItem["data"]->getId();
                    }
                    if (is_scalar($metadataItem["data"]) && strlen($metadataItem["data"]) > 0) {
                        $this->db->insert("assets_metadata", $metadataItem);
                        $data["hasMetaData"] = 1;
                    }
                }
            }
            $this->db->insertOrUpdate("assets", $data);
            // tree_locks
            $this->db->delete("tree_locks", "id = " . $this->model->getId() . " AND type = 'asset'");
            if ($this->model->getLocked()) {
                $this->db->insert("tree_locks", ["id" => $this->model->getId(), "type" => "asset", "locked" => $this->model->getLocked()]);
            }
        } catch (\Exception $e) {
            throw $e;
        }
    }