2013-10-20 4 views
0

내 애플리케이션과 데이터베이스를 연결해야합니다. 이렇게하려면 doctrine:generate:entity 인 개체를 생성했습니다. 그것은 매핑을위한 적절한 주석이있는 엔티티를 생성합니다. 나는 또한 doctrine:schema:update --force을 사용하여 데이터베이스 서버에 스키마를 실제로 만들었습니다. phpMyAdmin으로이 작업이 완료되었음을 확인할 수 있습니다. 내 컨트롤러에서 Symfony 엔티티를 저장할 때 서버 오류가 발생했습니다.

는 단순히과 같이 행을 삽입하기 위해 노력하고있어 :

public function testAction() { 
    $file = new File(); 
    $file->setTest('A Foo Bar'); 

    $em = $this->getDoctrine()->getManager(); 
    $em->persist($file); 
    $em->flush(); 

    return new JsonResponse(array('foo' => 'bar')); 
} 

문자열 길이 255의 난이 URL을 요청하면 AJAX를 통해 만 test 하나 개의 필드를 촉구했다 엔티티 내 응용 프로그램의 요청은, 그것은 매우 가치가없는 500 내부 서버 오류가 다시 발생 :

Oops! An Error Occurred

The server returned a "500 Internal Server Error".

Something is broken. Please e-mail us at [email] and let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.

PHP의 오류 로그는 오류 정보가 없습니다. 데이터베이스 조작 항목을 제거하면이 컨트롤러 조치가 작동합니다. 응용 프로그램은 또한 dev 환경에서 실행됩니다.

무엇이 잘못되었는지 더 자세히 설명하는 오류 메시지가 표시 될 수 있습니까?

+0

보통 Symfony 전체 백 추적 오류가 발생합니까? onPersist 또는 다른 Doctrine 이벤트를 트리거하는 EventListener를 만들었습니까? –

+0

캐시를 지운 후에 다시 시도하십시오 !!! –

+0

프로덕션 환경에서 응용 프로그램을 실행합니까? 그렇다면 loggin을 설정해보십시오 ([여기] (http://symfony.com/doc/current/cookbook/logging/monolog.html#using-several-handlers)를 클릭하면 [docs] (http : /symfony.com/doc/current/cookbook/logging/monolog.html#using-several-handlers)) – acrobat

답변

0

프로덕션 환경에서 사용하는 기본 오류 페이지입니다. 당신은 그것을 사용자 정의 할 수 있습니다 - http://symfony.com/doc/current/cookbook/controller/error_pages.html

당신은 잡아 ExceptionListener 만드는 오류 읽을 수 있습니다 - 또한 오류 텍스트를 표시하고 로그인 할 환경을 dev에 전환 할 수 http://symfony.com/doc/current/cookbook/event_dispatcher/event_listener.html

합니다.

dev 로그를 원하지만 환경을 보호하려면 monolog 섹션 app/config/config_dev.yml의 내용을 app/config/config_prod.yml으로 복사 할 수 있습니다.

0

여기있는 사람이이 문제와 관련하여 잃어버린 경우, 필자의 경우에는 @ORM \ ManyToOne 관계를 새로 지정하고 엔티티를 병합하는 대신 지속한다고 생각합니다.

이것은 과거에는 유효한 오류를 반환했지만,이 경우 PHP 스크립트가 전혀 처리하지 못했습니다.

+0

이 질문에 대한 답을 제공하지 않습니다. 충분한 [평판] (https://stackoverflow.com/help/whats-reputation)이 있으면 [모든 게시물에 주석 달기] (https://stackoverflow.com/help/privileges/comment) 할 수 있습니다. 대신, [질문자의 설명이 필요없는 답변을 제공하십시오] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do- 대신). - [검토 중] (리뷰/저품질 게시물/18698586) –

관련 문제