Laravel の次のメジャー リリースでは、ルーティング定義で直接暗黙的なルーティング モデル バインディングをカスタマイズできます:
推奨: laravel チュートリアル
Route::get('/posts/{post:slug}', function (Post $post) { // ... });
現在、Laravel 6 を使用している場合、以下の要件により、次のようにモデルに getRouteKeyName() メソッドを定義する必要があります:
<?php class Post extends Model { /** * Get the route key for the model. * * @return string */ public function getRouteKeyName() { return 'slug'; } }
getRouteKeyName() メソッドは引き続き使用できますが、ルート内で直接カスタマイズした方がスムーズだと思います。
おそらく、さまざまな方法でバインドしたい複数のルートがあるでしょう。たとえば、フロントエンド ルーターはスラッグを使用して投稿を表示し、バックエンドは ID
Route::get('/posts/{post:slug}', function (Post $post) { // ... }); // 或者你在这儿可以用默认的`{post}` Route::get('/admin/posts/{post:id}/edit', function (Post $post) { // ... });
によって投稿を管理することを望んでいます。暗黙的ルーティング モデル バインディングをカスタマイズしようとする場合は、Laravel
の開発バージョンをインストールできます。laravel new example --dev
この記事はプロの Laravel 開発者コミュニティから転送されたものです。元のリンク: https://learnku.com/laravel/t/37702
以上がLaravel 7の単純な暗黙的ルーティングモデルバインディングについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。