Pimcore\Model\Object\Fieldcollection\Data\Dao::save PHP Метод

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

public save ( Concrete $object )
$object Pimcore\Model\Object\Concrete
    public function save(Model\Object\Concrete $object)
    {
        $tableName = $this->model->getDefinition()->getTableName($object->getClass());
        $data = ["o_id" => $object->getId(), "index" => $this->model->getIndex(), "fieldname" => $this->model->getFieldname()];
        try {
            foreach ($this->model->getDefinition()->getFieldDefinitions() as $fd) {
                $getter = "get" . ucfirst($fd->getName());
                if (method_exists($fd, "save")) {
                    // for fieldtypes which have their own save algorithm eg. objects, multihref, ...
                    $index = $this->model->getIndex();
                    $fd->save($this->model, ["context" => ["containerType" => "fieldcollection", "containerKey" => $this->model->getType(), "fieldname" => $this->model->getFieldname(), "index" => $index]]);
                } elseif ($fd->getColumnType()) {
                    if (is_array($fd->getColumnType())) {
                        $insertDataArray = $fd->getDataForResource($this->model->{$getter}(), $object, ['context' => $this->model]);
                        $data = array_merge($data, $insertDataArray);
                    } else {
                        $data[$fd->getName()] = $fd->getDataForResource($this->model->{$getter}(), $object, ['context' => $this->model]);
                    }
                }
            }
            $this->db->insert($tableName, $data);
        } catch (\Exception $e) {
            throw $e;
        }
    }
Dao