2017-02-03 4 views
1

Symfony 3.2. * 버전에 Sonata 관리 프로젝트를 설치했습니다. composer.json 파일에서 내 프로젝트에 사용되는 구성 요소는 다음과 같습니다Sonata 관리 프로젝트 및 Sonata 변환 번들과 함께 Symfony 3.2. *의 "번역"속성에 대한 액세스 유형을 결정할 수 없습니다.

composer.json 파일의 패키지 내가 번역 번들을 사용하고 세부 사항

"require": { 
     "php": ">=5.5.9", 
     "ext-pdo_sqlite": "*", 
     "a2lix/i18n-doctrine-bundle": "^0.1.0", 
     "a2lix/translation-form-bundle": "^2.1", 
     "doctrine/doctrine-bundle": "^1.6", 
     "doctrine/doctrine-cache-bundle": "^1.2", 
     "doctrine/doctrine-fixtures-bundle": "^2.2", 
     "doctrine/orm": "^2.5", 
     "erusev/parsedown": "^1.5", 
     "ezyang/htmlpurifier": "^4.7", 
     "friendsofsymfony/user-bundle": "[email protected]", 
     "incenteev/composer-parameter-handler": "^2.0", 
     "sensio/distribution-bundle": "^5.0", 
     "sensio/framework-extra-bundle": "^3.0.2", 
     "sonata-project/admin-bundle": "^3.12", 
     "sonata-project/doctrine-orm-admin-bundle": "^3.1", 
     "sonata-project/translation-bundle": "^2.1", 
     "stof/doctrine-extensions-bundle": "^1.2", 
     "symfony/monolog-bundle": "^3.0", 
     "symfony/polyfill-apcu": "^1.0", 
     "symfony/property-access": "^3.2", 
     "symfony/swiftmailer-bundle": "^2.3", 
     "symfony/symfony": "^3.2", 
     "twig/extensions": "^1.3", 
     "twig/twig": "^1.28", 
     "white-october/pagerfanta-bundle": "^1.0" 
    }, 
    "require-dev": { 
     "friendsofphp/php-cs-fixer"   : "^1.12", 
     "phpunit/phpunit"      : "^4.8 || ^5.0", 
     "sensio/generator-bundle"    : "^3.0", 
     "symfony/phpunit-bridge"    : "^3.0" 
    }, 

스 니펫. 그래서 제 형태로, 각 필드에 대해 저는 두 언어에 해당하는 필드를 가지고 있습니다. 양식이 다중 언어 옵션으로 완벽하게 렌더링됩니다. 내가 양식을 제출하면, 나는 오류 아래에 무엇입니까 : 라인에서 vendor\symfony\symfony\src\Symfony\Component\PropertyAccess\PropertyAccessor.php

Could not determine access type for property "translations".

스택 추적 649

} elseif (self::ACCESS_TYPE_MAGIC === $access[self::ACCESS_TYPE]) { 
     $object->{$access[self::ACCESS_NAME]}($value); 
    } elseif (self::ACCESS_TYPE_NOT_FOUND === $access[self::ACCESS_TYPE]) { 
     throw new NoSuchPropertyException(sprintf('Could not determine access type for property "%s".', $property)); 
    } else { 
     throw new NoSuchPropertyException($access[self::ACCESS_NAME]); 
    } 

환경

소나타 패키지

$ composer show sonata-project/* 
sonata-project/admin-bundle    3.12.0 The missing Symfony Admin ... 
sonata-project/block-bundle    3.3.0 Symfony SonataBlockBundle 
sonata-project/cache      1.0.7 Cache library 
sonata-project/core-bundle    3.2.0 Symfony SonataCoreBundle 
sonata-project/doctrine-orm-admin-bundle 3.1.3 Symfony Sonata/Integrate... 
sonata-project/exporter     1.7.0 Lightweight Exporter library 
sonata-project/translation-bundle  2.1.0 SonataTranslationBundle 

심포니 패키지

,363,210
$ composer show symfony/* 
symfony/monolog-bundle  3.0.1 Symfony MonologBundle 
symfony/phpunit-bridge  v3.2.1 Symfony PHPUnit Bridge 
symfony/polyfill-apcu  v1.3.0 Symfony polyfill backporting apcu_* func... 
symfony/polyfill-intl-icu v1.3.0 Symfony polyfill for intl's ICU-related ... 
symfony/polyfill-mbstring v1.3.0 Symfony polyfill for the Mbstring extension 
symfony/polyfill-php56  v1.3.0 Symfony polyfill backporting some PHP 5.... 
symfony/polyfill-php70  v1.3.0 Symfony polyfill backporting some PHP 7.... 
symfony/polyfill-util  v1.3.0 Symfony utilities for portability of PHP... 
symfony/security-acl  v3.0.0 Symfony Security Component - ACL (Access... 
symfony/swiftmailer-bundle v2.4.2 Symfony SwiftmailerBundle 
symfony/symfony   v3.2.2 The Symfony PHP framework 

PHP 버전 당신이 당신의 엔티티 클래스의 생성자에서 컬렉션을 초기화하는 것을 잊지 때이 오류가 발생됩니다 대부분의 시간

$ php -v 
# $ php -v 
PHP 5.6.20 (cli) (built: Mar 31 2016 14:56:44) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies 

답변

2

.

엔티티 클래스를 확인하십시오. 생성자에

$this->translations = new ArrayCollection(); 

을 추가해야합니다.

보다 일반적으로 PropertyAccess는 엔터티의 setters/getters를 호출해야하므로 일반적으로 양식 유형이 아닌 엔터티 클래스와 관련된 문제입니다.

+0

당신은 생명의 은인 ❤️ – Charaf

+0

다행 내가 할 수있는 help.Happy 프로그래밍됩니다 – Mawcel