[解決済み] Symfony2で現在のユーザを表すエンティティを取得する方法は?
2022-04-30 12:16:49
質問
Symfonyのセキュリティ設定を使っています。すべてうまくいっていますが、1つの重要なことを行う方法がわかりません。
twigでは、次のようにすると現在のユーザー情報にアクセスできます。
Welcome, {{ app.user.username }}
など
これと同じ情報にControllerでアクセスするにはどうしたらよいでしょうか?具体的には、現在のユーザーエンティティを取得し、それを別のエンティティに関連付けして保存したいのです (一対一マッピング)。
本当にそうなることを望んでいました。
$this->get('security.context')->getToken()->getUser()
が、これではうまくいきません。これは
Symfony\Component\Security\Core\User\User
というタイプのものが欲しい。
Acme\AuctionBundle\Entity\User
というのが私の実体です...。
どのように解決するのですか?
Symfony 4+、2019+のアプローチ
symfony 4 (おそらく 3.3 も。ただし 4 でしかテストしていない) では
Security
サービスを
オートワイヤリング
をコントローラの中に入れて、このようにします。
<?php
use Symfony\Component\Security\Core\Security;
class SomeClass
{
/**
* @var Security
*/
private $security;
public function __construct(Security $security)
{
$this->security = $security;
}
public function privatePage() : Response
{
$user = $this->security->getUser(); // null or UserInterface, if logged in
// ... do whatever you want with $user
}
}
symfony 2- アプローチ
ktolis が言うように、まず最初に
/app/config/security.yml
.
そして
$user = $this->get('security.token_storage')->getToken()->getUser();
$user->getUsername();
で十分です。
$user
があなたのUser Objectです! もうクエリする必要はありません。
でプロバイダを設定する方法を確認します。
security.yml
から
Sf2ドキュメント
をクリックし、もう一度試してみてください。
頑張ってください。
関連
-
[解決済み] 不変量名 'System.Data.SqlClient' を持つ ADO.NET プロバイダに対応する Entity Framework プロバイダが見つかりませんでした。
-
[解決済み] 後で平文を取り出すためのユーザーパスワードの保管について、倫理的にどのように取り組むべきでしょうか?
-
[解決済み] PHPでユーザー入力をサニタイズするにはどうすればよいですか?
-
[解決済み] Entity Frameworkで生成されたSQLを表示するにはどうすればよいですか?
-
[解決済み] Entity Frameworkで複数行を削除する方法(foreachを使用しない)
-
[解決済み】XKCDコミック「Bobby Tables」のSQLインジェクションはどのように動作するのでしょうか?
-
[解決済み】.ToList(), .AsEnumerable(), AsQueryable()の違いは何ですか?
-
[解決済み] Entity Framework 4 / POCO - 何から始めるか?[クローズド]
-
[解決済み] Entity FrameworkとSQL Server View
-
[解決済み] エンティティフレームワークのコードファーストのNULL外部キー
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Entity Framework - エラー 11007。エンティティタイプはマッピングされていません。
-
[解決済み] Entity Framework: "ストアの更新、挿入、または削除ステートメントが予期しない行数 (0) に影響しました。" [クローズド]。
-
[解決済み] エンティティ・フレームワーク・マイグレーションをリセットする
-
[解決済み】DbContext.Database.ExecuteSqlCommandメソッドにパラメータを渡すにはどうしたらよいですか?
-
[解決済み】1つ以上の外部キーのプロパティが非NULLであるため、リレーションシップを変更できませんでした。
-
[解決済み] Entity Framework 5で子オブジェクトの子オブジェクトをインクルードする方法
-
[解決済み] キーワードはサポートされていません。"データソース" Entity Framework Contextの初期化
-
[解決済み] EF Code First "Invalid column name 'Discriminator'" but no inheritance.
-
[解決済み] 特定のVSプロジェクトでのみパッケージマネージャーコンソールのマイグレーションを有効にするCommandNotFoundExceptionを発生させる
-
[解決済み] Entity Framework Code First - Fluent ApiとData Annotationsのメリット・デメリット【終了しました