Symfony RestBundle:v2のアップグレード後に@Viewアノテーションが機能しなくなった

numediaweb

JMSシリアライザーとFOSRestBundleの間に競合があると思います。idとaccessTokenの代わりに空のjsonオブジェクトを取得します。v2のドキュメントが不足していますか?

config.yml

fos_rest:
    routing_loader:
        default_format: json
        include_format: false
    format_listener: true
    view:
        view_response_listener: 'force'
        formats:
            json: true
        templating_formats:
            html: false
            json: false
    body_converter:
        enabled: true

コントローラ

class SecurityController extends FOSRestController
{
     *
     * @View(serializerGroups={"login"})
     *
     */
    public function postLoginAction(Request $request)
    {
            // $user = MyOAuthUserResponse extends AbstractUserResponse

           // before upgrade I just use: return $this->view($user);

            $view = $this->view($user);

            $context = new Context();
            $context->addGroup('login');

            $view->setContext($context);

            return $this->handleView($view);
    }

エンティティ

/**
 * @Serializer\ExclusionPolicy("All")
 */
class User extends BaseUser
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     * @Serializer\Expose()
     */
    protected $id;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="created", type="datetime")
     * @Gedmo\Timestampable(on="create")
     */
    private $created;

    /**
     * @var string
     * @ORM\Column(type="string", nullable=true)
     * @Serializer\Expose()
     */
    private $accessToken;
numediaweb

問題が見つかりました!

vendor/jms/serializer/src/JMS/Serializer/GraphNavigator.php:209

$exclusionStrategy = $context->getExclusionStrategy(); // Returns NULL

これは(アップグレード前に)正常に機能するようです:

return $this->view($user);

しかし、アップグレード以降、$ exclusionStrategyは次のようになります。

JMS\Serializer\Exclusion\GroupsExclusionStrategy Object
(
    [groups:JMS\Serializer\Exclusion\GroupsExclusionStrategy:private] => Array
        (
            [login] => 1
        )

    [nestedGroups:JMS\Serializer\Exclusion\GroupsExclusionStrategy:private] => 

私は、コンテキストコードを削除することを修正するために、私は、ビューに渡され、渡しviewhandleviewように:

return $this->handleView($this->view($user));

私はこのアップグレードドキュメントと間違えました

use FOS\RestBundle\Context\Context;

$view = new View();

$context = new Context();
$view->setContext($context);

$context = $view->getContext();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Symfony3にアップグレードした後、ユーザーログインが機能しなくなるのはなぜですか

分類Dev

Symfony 4.4にアップグレードした後、エラープレビューページが表示されなくなったのはなぜですか?

分類Dev

Symfony 2ファイルのアップロード:getClientOriginalName()がまったく機能しない

分類Dev

クラスのSymfony2ルートアノテーションが機能しない

分類Dev

Symfony4アノテーションルーティングが機能しない

分類Dev

Symfony 2(2.3.x)アノテーションルートが機能しない

分類Dev

アップグレード後、Symfony2formbuilderエンティティフィールドはすべてなくなりました

分類Dev

Symfony2ログインが機能しなくなった

分類Dev

Symfony4-ログインがアクティブでなくなった後にユーザーをリダイレクトする

分類Dev

Symfony4ファイルのアップロードが機能しない

分類Dev

Symfony 5:メソッドアノテーションの@IsGrantedは継承されたロールでは機能しません

分類Dev

アクションへのAjaxURLが機能しない+ Symfony2

分類Dev

SymfonyルーティングまたはSymfonyアノテーション?

分類Dev

symfonyフォーム:オプションが機能しない

分類Dev

「rememberme」が有効になっている場合、Symfony2アプリケーションでユーザーをログアウトします

分類Dev

Symfony4:アノテーションが存在しないか、自動ロードできませんでした(Symfony \ Component \ Validator \ Constraints)

分類Dev

Symfony2:複数のアップロードファイルが機能しない

分類Dev

エンティティなしのSymfony2シンプルファイルアップロード編集

分類Dev

Symfonyなしのユニットテストサービスアノテーション

分類Dev

カスタムフィルター、Symfony 2.7を追加した後、Twigの「アセット」が機能しない

分類Dev

Symfony2ログイン後に成功ハンドラーが機能しない

分類Dev

symfony3-ビューをレンダリングした後にセッションをクリアする

分類Dev

アノテーションgeoalgolia symfony

分類Dev

Symfony3.4-アノテーションがインストールされ有効になっていることを確認します

分類Dev

OUT変数を含むストアドプロシージャがoracle&symfony2で機能しない

分類Dev

アノテーションを使用して同じコントローラー内の2つの異なる「アクション」関数にルーティングする方法-Symfony2

分類Dev

@アノテーションが機能しなくなった

分類Dev

Symfony&TWIG:テンプレートディレクトリのルートが正常に機能しない

分類Dev

Symfony2アノテーションの継承

Related 関連記事

  1. 1

    Symfony3にアップグレードした後、ユーザーログインが機能しなくなるのはなぜですか

  2. 2

    Symfony 4.4にアップグレードした後、エラープレビューページが表示されなくなったのはなぜですか?

  3. 3

    Symfony 2ファイルのアップロード:getClientOriginalName()がまったく機能しない

  4. 4

    クラスのSymfony2ルートアノテーションが機能しない

  5. 5

    Symfony4アノテーションルーティングが機能しない

  6. 6

    Symfony 2(2.3.x)アノテーションルートが機能しない

  7. 7

    アップグレード後、Symfony2formbuilderエンティティフィールドはすべてなくなりました

  8. 8

    Symfony2ログインが機能しなくなった

  9. 9

    Symfony4-ログインがアクティブでなくなった後にユーザーをリダイレクトする

  10. 10

    Symfony4ファイルのアップロードが機能しない

  11. 11

    Symfony 5:メソッドアノテーションの@IsGrantedは継承されたロールでは機能しません

  12. 12

    アクションへのAjaxURLが機能しない+ Symfony2

  13. 13

    SymfonyルーティングまたはSymfonyアノテーション?

  14. 14

    symfonyフォーム:オプションが機能しない

  15. 15

    「rememberme」が有効になっている場合、Symfony2アプリケーションでユーザーをログアウトします

  16. 16

    Symfony4:アノテーションが存在しないか、自動ロードできませんでした(Symfony \ Component \ Validator \ Constraints)

  17. 17

    Symfony2:複数のアップロードファイルが機能しない

  18. 18

    エンティティなしのSymfony2シンプルファイルアップロード編集

  19. 19

    Symfonyなしのユニットテストサービスアノテーション

  20. 20

    カスタムフィルター、Symfony 2.7を追加した後、Twigの「アセット」が機能しない

  21. 21

    Symfony2ログイン後に成功ハンドラーが機能しない

  22. 22

    symfony3-ビューをレンダリングした後にセッションをクリアする

  23. 23

    アノテーションgeoalgolia symfony

  24. 24

    Symfony3.4-アノテーションがインストールされ有効になっていることを確認します

  25. 25

    OUT変数を含むストアドプロシージャがoracle&symfony2で機能しない

  26. 26

    アノテーションを使用して同じコントローラー内の2つの異なる「アクション」関数にルーティングする方法-Symfony2

  27. 27

    @アノテーションが機能しなくなった

  28. 28

    Symfony&TWIG:テンプレートディレクトリのルートが正常に機能しない

  29. 29

    Symfony2アノテーションの継承

ホットタグ

アーカイブ