0

ユーザーが登録された後、デフォルトの役割をユーザーに割り当てたい。SonataUserBundle によって拡張された FOSUserBundle を実装しました。残念ながら、SonataUserBundle には FOSUserBundle ~1.3 が必要で、イベント リスナーは FOSUserBundle 2.0 以降です。

eventListener または FOSUserBundle コントローラーのオーバーライド以外に、この問題を解決する別の方法はありますか? たぶん、私が見逃したyamlのある種のオプションですか?それはかなり標準的な問題のようですが、私はまだsymfony2に慣れていません...

4

3 に答える 3

1

遅くなりますが、 User クラスのコンストラクターをオーバーライドするだけです。私はあなたが拡張したと仮定する Sonata\UserBundle\Entity\BaseUserので、あなたのコードは次のようになるはずです:

namespace Acme\UserBundle\Entity;

use Sonata\UserBundle\Entity\BaseUser as BaseUser;

class User extends BaseUser
 {
    public function __construct()
    {
        parent::__construct();
        $this->roles = array('ROLE_ADMIN');
    }
}

役割を割り当てる前に使用する必要がありparent::_constructます。そうしないと、Sonata 登録コントローラーが役割を上書きします。それが役に立てば幸い :)

于 2015-09-08T14:50:48.303 に答える