2016-08-10 55 views
1

我需要使用一些自定義字段創建自定義FE用戶。 此外,它需要通過前端分配給不同的用戶組。TYPO3:將模型和地圖擴展到現有表格

你可以找到我的第一個方法here。沒有很好地解決問題。

第二種方法是創建另一個擴展名,並遵循顯示here的指南。

我做的第一件事是將\TYPO3\CMS\Extbase\Domain\Model\FrontendUser添加到我的CustomFEU模型的Extend現有模型類字段中。 然後我創建了另一個我命名爲FEgroup的模型,並將其映射到表fe_groups。之後,我將一個n:m關係連接到CustomFEU。

當我嘗試使用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 
     } 
    } 
}