XF 2.0 Ассоциация вложений с контентом

xsacha

Только чтение
Сообщения
1,262
Реакции
1,384
Баллы
8,450
Подскажите пожалуйста как можно сделать ассоциацию загруженных вложений с созданным контентом, вложения загружаются в менеджер вложений, но при удалении записи не удаляются оттуда. Вот фрагмент моего контроллера
PHP:
   public function steamAddEdit(\Hal\Steam\Entity\Steam $book) {

        $bookAttachData = $this->repository('XF:Attachment')->getEditorData('book_version', $book);

        $viewParams = [
            'book' => $book,
            'bookAttachData' => $bookAttachData
        ];
        return $this->view('Hal\Steam:Steam\Edit', 'book_version_edit', $viewParams);
    }

    public function actionEdit(ParameterBag $params) {

        $book = $this->assertSteamExists($params['book_version_id']);
        return $this->SteamAddEdit($book);
    }

    public function actionAdd() {

        $book = $this->em()->create('Hal\Steam:Steam');
        return $this->SteamAddEdit($book);
    }

    protected function steamSaveProcess(\Hal\Steam\Entity\Steam $book) {

        $form = $this->formAction();

        $input = $this->filter([
            'version_string' => 'str',
            'changelog' => 'array-str',
            'is_unsupported' => 'bool'
        ]);
        $input['version_details'] = $this->plugin('XF:Editor')->fromInput('version_details');
        $input['book_attach_hash'] = $this->filter('book_attach_hash', 'str');

        $form->basicEntitySave($book, $input);

        return $form;
    }

    public function actionSave(ParameterBag $params) {
        $this->assertPostOnly();

        if ($params['book_version_id']) {
            $book = $this->assertSteamExists($params['book_version_id']);

            $inserter = $this->service('Hal\Steam:Steam\Preparer');
            $inserter->associateAttachmentsWithContent($this->filter('book_attach_hash'), 'book_version', $book->book_version_id);
        } else {
            $book = $this->em()->create('Hal\Steam:Steam');
        }

        $this->steamSaveProcess($book)->run();
        return $this->redirect($this->buildLink('steams'));
    }
Возможно знающие люди подскажут что я упустил.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу