Laravel:指定されたパラメータが無効な場合、ユーザーをカスタム404ページにリダイレクトします

バレンタイン

ユーザーがいくつかの論文を作成し、テンプレート内のすべてのデータを表示できるアプリケーションを作成しました。すべてのペーパーには、作成時に生成される結合コードがあります。

web.phpで結合ルートを次のように定義しました

Route::get('/conceptPaper/lobby/{joincode}', 'App\Http\Controllers\ConceptPaperController@join');

コントローラの結合機能は次のようになります。

public function join($joincode)
    {
        try { 
            $conceptPaper = ConceptPaper::where('join_code', $joincode)->firstOrFail();
            return response()->json($conceptPaper);
        } catch(ModelNotFoundException $e)
        {
            return view('errors.404');
        }
    }

私が使用firstOrFailを参加コードが存在するかどうかを確認します。存在する場合は応答を返す必要があり、存在しない場合はユーザーをカスタム404ページにリダイレクトする必要があります。

参加コードをルートパラメータとして取得し、コンセプトペーパーを表示するカスタムコンポーネントを作成しました

{
        path: '/conceptPaper/lobby/:joincode',
        name: 'conceptPaper',
        component: () => import('./views/ConceptPaper.vue')
    },

したがって、ユーザーが適切なコードでロビーに参加すると、対応する紙のすべてのデータを含むページにリダイレクトされます。

showPaper: async function (conceptPaper) {
      const joinCode = conceptPaper.join_code;
      this.$router.push({ name: "conceptPaper", params: { joincode: joinCode }, });
    },

私の問題は、ユーザーが間違ったコードを入力しても、ビューにリダイレクトされることです。ネットワークタブで応答を確認すると、404ページが表示されます。

私はそれを根本的に間違って構築したと思います。誰かがそれを正しい方法で行う方法を教えてもらえますか?suerが正しい結合コードを入力すると、ConceptPaper.vueビューが表示されます。コードが間違っている場合は、404ページにリダイレクトする必要があります。

ベッド

コードから、VueJをSPAとして使用していて、laravelバックエンドAPIからデータを取得していると想定しています。

これに基づいて、join関数はフロントエンドで使用するjsonデータを返すことになっていますが、がConceptPaper見つからなかった場合は、jsonの代わりにビューを返します。これは、データを変更するだけなのであまり変更されません。フロントエンドが受信しますが、フロントエンドコンポーネントは変更されません。

私がすることは、APIから404応答を返すtry catchブロックを削除し、vueで404ケースを処理し、vueでNotFoundビューを作成することです。

Laravel

public function join($joincode)
{
    $conceptPaper = ConceptPaper::where('join_code', $joincode)->firstOrFail();
    return response()->json($conceptPaper);
}

見る

router/index.js

const routes = [
  // previous routes
  {
    path: '/not-found',
    name: 'NotFound',
    component: () => import('../views/NotFound.vue')
  }
]

NotFound.vue

<template>
// page here
</template>
export {
    name: 'NotFound'
}

そして最後に、axiosを使用している場合は、見つからないAPI呼び出しを処理します

axios.get('/conceptPaper/lobby/-1000')
  .catch(function (error) {
    if (error.response.status === 404) {
        this.$router.push('NotFound');
    }
  });

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パスワードが有効な場合、ユーザー名に基づいてユーザーをページにリダイレクトします

分類Dev

ユーザーがasp.netで間違ったページ名またはwringパラメーターを入力した場合にグローバルエラーページにリダイレクトする方法

分類Dev

ユーザーが転送された場合は、サブページにリダイレクトします

分類Dev

ASP.NET MVCでユーザーが匿名の場合は、カスタムWindows認証ログインページにリダイレクトします

分類Dev

考案-ユーザー更新の失敗がカスタムページにリダイレクトされる場合

分類Dev

ユーザーをホームページにリダイレクトするか、ログインしていない場合は送信ボタンを無効にします

分類Dev

vue-routerを使用して無効なURLパラメーターを使用して404ページにリダイレクトする方法

分類Dev

ページにエラーがある場合は、カスタムエラーページにリダイレクトします

分類Dev

ユーザーが間違ったデータを入力した場合にエラーメッセージをリダイレクトする方法

分類Dev

リクエストURLにRailsに無効なパラメータが含まれている場合に404をリダイレクトする最良の方法は何ですか?

分類Dev

匿名ユーザーがURLにアクセスできない場合、ログインページではなくカスタムページにリダイレクトするにはどうすればよいですか?

分類Dev

Unixシェルスクリプト:指定された拡張子ファイルがディレクトリに存在しない場合にカスタムメッセージを表示します

分類Dev

nginx configserver_nameをカスタム404エラーページにリダイレクトします

分類Dev

条件が満たされた場合、クラスベースのビューで成功URLを使用して別のページにリダイレクトできなかった場合、1つのページにリダイレクトします

分類Dev

ユーザーがログインしていない場合、またはユーザーがangularjsを使用してURLから直接ページにアクセスしようとした場合に、ログインにリダイレクトします

分類Dev

スケジュールされたタスクが有効で、リモートサーバーで実行されている場合は、Windowsタスクスケジューラジョブをローカルで無効にします

分類Dev

ユーザーが特定のページからリダイレクトされた場合にのみPHPの呼び出しを許可しますか?

分類Dev

商品がカートに入っている場合は「カートに追加」ボタンのテキストを変更し、WooCommerceで条件が満たされたときにカートページにリダイレクトします

分類Dev

ReactRouter-カスタム404ページにリダイレクトするネストされたリンク

分類Dev

Azure はカスタム 404 ページにリダイレクトします

分類Dev

パラメーターが明示的に渡されていない場合、デフォルトでラムダを使用したユーザー入力

分類Dev

ユーザータイプが求職者の場合は1ページ目にリダイレクトし、ユーザータイプが雇用主の場合は2ページ目にリダイレクトします

分類Dev

apache / .htaccess:不正なページがカスタム404にリダイレクトされない

分類Dev

ユニットテスト-TypeErrorの取得:ストリームが予期されていた場所に無効なオブジェクトを指定しました

分類Dev

ストリームが破棄された場合、Streamパラメーターを指定したWCFRESTサービスは400をスローします

分類Dev

ユーザーが無効なデータを入力した場合にスクリプトを再開する簡単な方法はありますか?

分類Dev

ページ名の後に末尾の「/」(または「/」の後の何か)を入力した場合、ユーザーをエラー404ページにリダイレクトするにはどうすればよいですか?

分類Dev

@ Html.ActionLinkがパラメーターとともに渡された場合、ブートストラップデザインがページにレンダリングされません。

分類Dev

htaccessがカスタム404ページにリダイレクトされない

Related 関連記事

  1. 1

    パスワードが有効な場合、ユーザー名に基づいてユーザーをページにリダイレクトします

  2. 2

    ユーザーがasp.netで間違ったページ名またはwringパラメーターを入力した場合にグローバルエラーページにリダイレクトする方法

  3. 3

    ユーザーが転送された場合は、サブページにリダイレクトします

  4. 4

    ASP.NET MVCでユーザーが匿名の場合は、カスタムWindows認証ログインページにリダイレクトします

  5. 5

    考案-ユーザー更新の失敗がカスタムページにリダイレクトされる場合

  6. 6

    ユーザーをホームページにリダイレクトするか、ログインしていない場合は送信ボタンを無効にします

  7. 7

    vue-routerを使用して無効なURLパラメーターを使用して404ページにリダイレクトする方法

  8. 8

    ページにエラーがある場合は、カスタムエラーページにリダイレクトします

  9. 9

    ユーザーが間違ったデータを入力した場合にエラーメッセージをリダイレクトする方法

  10. 10

    リクエストURLにRailsに無効なパラメータが含まれている場合に404をリダイレクトする最良の方法は何ですか?

  11. 11

    匿名ユーザーがURLにアクセスできない場合、ログインページではなくカスタムページにリダイレクトするにはどうすればよいですか?

  12. 12

    Unixシェルスクリプト:指定された拡張子ファイルがディレクトリに存在しない場合にカスタムメッセージを表示します

  13. 13

    nginx configserver_nameをカスタム404エラーページにリダイレクトします

  14. 14

    条件が満たされた場合、クラスベースのビューで成功URLを使用して別のページにリダイレクトできなかった場合、1つのページにリダイレクトします

  15. 15

    ユーザーがログインしていない場合、またはユーザーがangularjsを使用してURLから直接ページにアクセスしようとした場合に、ログインにリダイレクトします

  16. 16

    スケジュールされたタスクが有効で、リモートサーバーで実行されている場合は、Windowsタスクスケジューラジョブをローカルで無効にします

  17. 17

    ユーザーが特定のページからリダイレクトされた場合にのみPHPの呼び出しを許可しますか?

  18. 18

    商品がカートに入っている場合は「カートに追加」ボタンのテキストを変更し、WooCommerceで条件が満たされたときにカートページにリダイレクトします

  19. 19

    ReactRouter-カスタム404ページにリダイレクトするネストされたリンク

  20. 20

    Azure はカスタム 404 ページにリダイレクトします

  21. 21

    パラメーターが明示的に渡されていない場合、デフォルトでラムダを使用したユーザー入力

  22. 22

    ユーザータイプが求職者の場合は1ページ目にリダイレクトし、ユーザータイプが雇用主の場合は2ページ目にリダイレクトします

  23. 23

    apache / .htaccess:不正なページがカスタム404にリダイレクトされない

  24. 24

    ユニットテスト-TypeErrorの取得:ストリームが予期されていた場所に無効なオブジェクトを指定しました

  25. 25

    ストリームが破棄された場合、Streamパラメーターを指定したWCFRESTサービスは400をスローします

  26. 26

    ユーザーが無効なデータを入力した場合にスクリプトを再開する簡単な方法はありますか?

  27. 27

    ページ名の後に末尾の「/」(または「/」の後の何か)を入力した場合、ユーザーをエラー404ページにリダイレクトするにはどうすればよいですか?

  28. 28

    @ Html.ActionLinkがパラメーターとともに渡された場合、ブートストラップデザインがページにレンダリングされません。

  29. 29

    htaccessがカスタム404ページにリダイレクトされない

ホットタグ

アーカイブ