2016-08-10 7 views
1

いくつかのカスタムフィールドを持つカスタムFEユーザーを作成する必要があります。 また、フロントエンドから別のユーザーグループに割り当てる必要があります。TYPO3:モデルを拡張して既存のテーブルにマップ

私の最初のアプローチはhereです。あまりうまく動かなかった。

もう1つのエクステンションを作成し、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 
     } 
    } 
} 
関連する問題