ホームページ >PHPフレームワーク >Laravel >LaravelでIDを隠す方法
Web アプリケーションの開発に伴い、フレームワークを使用して独自のアプリケーションを構築する人が増えています。最も人気のあるフレームワークの 1 つは Laravel です。 Laravel では、開発を容易にする機能やツールが多数提供されており、その中には ID を非表示にする機能も含まれており、セキュリティ要件が高い一部のアプリケーションで非常に役立ちます。
多くのアプリケーションでは、データ レコードの主キーは通常、数値 ID であるため、データの管理と取得が容易になります。ただし、場合によっては、これらのデータレコードが簡単に公開されないように保護する必要があります。たとえば、データ レコードに機密情報が含まれている場合、認証されたユーザーのみにアクセスを許可したいと考えます。
Laravel では、ルート モデル バインディングと呼ばれる機能を使用して、暗黙的に ID 値を渡すことができます。これは、URL 内の ID を非表示にしても、それをデータ レコードのクエリに使用できることを意味します。これがどのように機能するかを見てみましょう。
まず、モデル内でルーティング キーを定義する必要があります。これは暗黙的に使用するフィールドになります。この例では、slug フィールドを使用してデータ レコードを識別します。
class Post extends Model { public function getRouteKeyName() { return 'slug'; } }
次に、モデルとルーティング キーを使用するようにルーティング定義を更新する必要があります。たとえば、次のルートを使用して投稿を表示できます:
Route::get('/posts/{post}', function (Post $post) { return view('post', compact('post')); });
これにより、アプリケーションに ID 1 の投稿を表示する URL が与えられます:
http://example.com/posts/1
ただし、非表示にするにはID を使用すると、ID の代わりにスラッグを使用するようにルート定義を更新できます。例:
Route::get('/posts/{post:slug}', function (Post $post) { return view('post', compact('post')); });
これで、URL の ID の代わりにスラッグ フィールドを使用できるようになりました。たとえば、次の URL を使用して同じ投稿を表示できます:
http://example.com/posts/my-first-post
その URL を開くと、Laravel はモデルを使用してスラッグ「my-first-post」に対応する投稿を見つけてパスします。これをコントローラーへのパラメーターとして指定します。以前と同じ方法で投稿のプロパティとメソッドにアクセスできます。例:
<h1>{{ $post->title }}</h1> <p>{{ $post->content }}</p>
この方法を使用すると、アプリケーションで ID を非表示にし、代わりにフィールドを使用できます。これは、次のような一部のアプリケーションで非常に役立ちます。
以上がLaravelでIDを隠す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。