0

私はここで解決策を探し求めてきましたが、本当に必要なものが見つかりません。それは私が正しいものを探していないということかもしれません。

私のアプリの管理者バックエンドの場合、現在、次のようなコントローラーのユーザーを取得しています。

//routing.yml
view_user:
    pattern: /user/{id}/
    defaults: { _controller: AppBundle:User:view }

//UserController.php
use Sauce\AppBundle\Entity\User;

public function viewAction(User $user)
{
    $user->getSauce();
}

ユーザーがIDを使用して各URLで自分自身をフェッチしないフロントエンドの場合、これは機能しません。URLにIDがなくてもこれを行うことは可能ですか?ユーザーを簡単に利用できるようにする方法について最初に考えたのは、次のようなものです。

/**
 * A fast way to grab the user throughout this class.
 */
public function getUser() {
    return $this->get('security.context')->getToken()->getUser();
}

public function viewAction()
{
    $user = $this->getUser();

    ...
}

しかし、これは私には、Symfony2の基準をはるかに下回っているように見えます。もっとエレガントなものを見落としているに違いない。そこに何か洞察はありますか?

4

1 に答える 1

0

ええ、ヘルパーメソッドを作成するのが道です。それをベースコントローラーに移動して、DRYを維持することができます。私の抽象ベースコントローラーはそのようなメソッドを提供します。

私が知っているこれを行う「魔法の」方法はありません。

于 2012-06-04T11:22:47.127 に答える