2016-08-10 2 views
1

사용자 정의 필드를 사용하여 사용자 정의 FE 사용자를 만들어야합니다. 또한 프론트 엔드를 통해 다른 사용자 그룹에 할당 할 수 있어야합니다.TYPO3 : 모델 확장 및 기존 테이블에 매핑

내 첫 번째 접근 방법은 here입니다. 그걸 잘 풀지 못했어요.

두 번째 접근법은 다른 확장을 만들고 here으로 표시된 가이드를 따르는 것이 었습니다.

내가 한 첫 번째 작업은 내 CustomFEU 모델의 기존 모델 확장 필드에 \TYPO3\CMS\Extbase\Domain\Model\FrontendUser을 추가하는 것이 었습니다. 그런 다음 FEgroup이라는 다른 모델을 만들고 테이블 fe_groups에 매핑했습니다. 그 후, CustomFEU에 n : m 관계를 연결했습니다.

new 동작으로 새로운 CustomFEU를 만들려고하면 양식을 제출하고 아무 사용자도 추가하지 않은 후에 흰색 빈 페이지가 반환됩니다.

유일한 이상한 점은 /Classes/Domain/Repository/ 폴더가 비어 있다는 것입니다. 나는 아직 파일을 편집하지 않았지만

TYPO3 7.6.8

, 여기에 그들이있다 :
Model/Controller/Setup

사람이 비슷한 문제가 발생 했습니까?

+1

코드를 인라인하십시오. - pastebin 링크가 죽을 수 있습니다. 빈 페이지를 얻는다면 어쩌면 치명적인 PHP 오류가 어딘가에서 발생하는 것입니다. 오류 로그를 확인하거나 프론트 엔드에서 오류를 표시 할 수 있습니다. – Jost

+1

시스템에서 오류/예외를 인쇄하지 않는 것처럼 "빈 페이지"가 ​​들립니다. PHP에서 display_errors를 켜고 TYPO3 설치를 개발 사전 설정으로 설정하여 진행 상황을 확인합니다. 또한, newAction() 또는 createAction() 메서드가 잘못되어 가고있는 것에 대해 이야기하고 있습니까? – j4k3

답변

2

먼저 새 사용자 및 사용자 그룹 모델을 처리하는 리포지토리를 만들어야합니다.

두 번째로 사용자를 $this->customFEURepository->add($newCustomFEU);으로 저장하려고 시도하고 변수 customFEURepository가 존재하지 않습니다. 주입하는 것이 가장 좋을 것입니다. 먼저 작성해야하는 저장소 여야합니다. 다음과 같이 주입 할 수 있습니다.

/** 
* CustomFEUController 
*/ 
class CustomFEUController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController 
{ 

    /** 
    * @var \Vendor\Feregistration\Repository\CustomFEURepository 
    * @inject 
    */ 
    protected $customFEURepository; 

// other code ... 
} 

주입 주석을 추가 한 후 시스템 캐시를 지우는 것을 잊지 마세요. 그렇지 않으면 작동하지 않습니다.

마지막으로 중요한 사실은 귀하의 모델에 대한 데이터베이스 테이블에 대한 매핑을 볼 수 없다는 것입니다. TypoScript (setup.txt)에 추가해야합니다.

config.tx_extbase.persistence.classes { 

    Vendor\Feregistration\Domain\Model\CustomFEU { 
     mapping { 
      recordType = 0 
      tableName = fe_users 
     } 
    } 

    Vendor\Feregistration\Domain\Model\FEGroups { 
     mapping { 
      recordType = 0 
      tableName = fe_groups 
     } 
    } 
} 
관련 문제