Jarves\Admin\ObjectCrud::update PHP Метод

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

Updates a object entry. This means, all fields which are not defined will be saved as NULL.
public update ( array $pk, Request | array $requestOrData ) : boolean
$pk array
$requestOrData Symfony\Component\HttpFoundation\Request | array
Результат boolean
    public function update($pk, $requestOrData)
    {
        $storageController = $this->objects->getStorageController($this->getObject());
        $pk = $storageController->normalizePrimaryKey($pk);
        $this->primaryKey = $pk;
        $values = $this->collectData($requestOrData);
        $args = ['pk' => $pk, 'values' => &$values, 'controller' => $this, 'mode' => 'update'];
        $eventPre = new GenericEvent($this->getObject(), $args);
        $this->eventDispatcher->dispatch('core/object/modify-pre', $eventPre);
        $this->eventDispatcher->dispatch('core/object/update-pre', $eventPre);
        $item = $this->getItem($pk);
        if ($this->getPermissionCheck()) {
            if (!$item) {
                return null;
            }
            if (!$this->acl->check(ACLRequest::create($this->getObject(), $pk)->onlyUpdateMode())) {
                return null;
            }
            foreach ($values as $fieldName => $value) {
                if (!$this->acl->check(ACLRequest::create($this->getObject(), $pk)->onlyUpdateMode()->setField([$fieldName => $value]))) {
                    unset($values[$fieldName]);
                }
            }
        }
        if (($condition = $this->getCondition()) && $condition->hasRules()) {
            if (!$this->conditionOperator->satisfy($condition, $item, $this->getObject())) {
                return null;
            }
        }
        $data = $this->mapData($values);
        if ($this->getWithNewsFeed()) {
            $this->utils->newNewsFeed($this->objects, $this->getObject(), array_merge($values, $pk), 'updated');
        }
        $result = $storageController->update($pk, $data);
        $args['result'] = $result;
        $event = new GenericEvent($this->getObject(), $args);
        $this->eventDispatcher->dispatch('core/object/modify', $event);
        $this->eventDispatcher->dispatch('core/object/update', $event);
        return $result;
    }
ObjectCrud