2014-05-23 1 views
0

내 프로젝트에서 독립형 버전의 SyliusResourceBundle (0.9)을 사용합니다. 사용자, 그룹, 역할 및 회사와 관련된 모든 항목에 문제없이 관리 할 수 ​​있습니다.내 파일 업데이트 리스너가 sylius 프로젝트에서 variant_image처럼 작동하지 않는 이유는 무엇입니까?

Gaufrette \ Filesystem을 사용하여 로고를 회사에 추가하려고했습니다 (예 : sylius의 variant_image). 그리고 내 서비스가 실행되지 않는 것 같습니다. 그는 업로드하지 않고 이미지를 유지하려고 시도하고 내 청취자에게 오류 메시지가 없습니다! config.yml에서

KNP Gaufrette 구성 :

knp_gaufrette: 
    adapters: 
     project_file: 
      local: 
       directory: %kernel.root_dir%/../web/media/file 
       create:  true 
    filesystems: 
     project_file: 
      adapter: project_file 

ProjectCoreBundle \ 자료 \ 구성 \ services.yml :

#in ProjectCoreBundle\Resources\Config\services.yml 
# Listener 
project.listener.image_upload: 
    class: %project.listener.image_upload.class% 
    arguments: ['@project.image_uploader'] 
    tag: 
     - { name: kernel.event_listener, event: project.company.pre_create, method: uploadCompanyLogo } 
     - { name: kernel.event_listener, event: project.company.pre_update, method: uploadCompanyLogo } 

# Other 
project.image_uploader: 
    class: %project.image_uploader.class% 
    factory_class: Gaufrette\Filesystem 
    factory_service: knp_gaufrette.filesystem_map 
    factory_method: get 
    arguments: [project_file] 

내 ImageUploadListener :

<?php 

namespace Project\CoreBundle\EventListener; 

use Project\CompanyBundle\Entity\CompanyInterface; 
use Project\CoreBundle\Uploader\ImageUploaderInterface; 
use Symfony\Component\EventDispatcher\GenericEvent; 

class ImageUploadListener 
{ 
    protected $uploader; 

    public function __construct(ImageUploaderInterface $uploader) 
    { 
     $this->uploader = $uploader; 
    } 

    public function uploadCompanyLogo(GenericEvent $event) 
    { 
     $subject = $event->getSubject(); 

     if (!$subject instanceof CompanyInterface) { 
      throw new UnexpectedTypeException(
       $subject, 
      'Project\CompanyBundle\CompanyInterface'); 
     } 

     $logo = $subject->getLogo(); 

     if ($logo->hasFile()) { 
      $this->uploader->upload($logo); 
     } 
    } 
} 

내가 보내는 내 이미지가있는 양식은 다음과 같습니다.

An exception occurred while executing 'INSERT INTO syn_image (path, createdAt, updatedAt) VALUES (?, ?, ?)' with params [null, "2014-05-23 18:13:13", "2014-05-23 18:13:13"]: 
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'path' cannot be null 

내 서비스가 시작되지 않는다고 생각합니다. 누구든지이 문제를 해결할 수 있습니까?

고마워요 :) Thanks :

답변

0

이미지 업 로더 기능이 아직 개발 중입니다. 이 github 문제를 만든 사람이 이미 컬렉션에 포함 된 이미지가있는 경우 이미지 업 로더가 작동하지 않는 것으로 나타났습니다 (issue #356). 수행 할 수있는 작업/더 나은 업 로더를 개발하는 데 사용할 수있는 도구에 대한 설명은 여기 link입니다.

+0

감사합니다. – Khyor