2017-11-26 10 views
1

について混同しました:Laravelルートは、私は以下のように私のプロジェクトでのルートを持っているIDとスラグ

Route::get('/product/{category}/{all}/{name}-{id}.html', ['as' => 'product.single', 'uses' => '[email protected]'])->where('id', '[0-9]+'); 

ので、ここではIDの問題を、私たちはURLにスラグを置く伝統(およびその後のID)として、しかし、私たちのルートのいくつかはIDセクションで混乱するでしょう、ここに例があります: /product/gold/women-gold/one-special-167.htmlのための URLのlaravelのために( -167はIDですが、そうではありません。 この問題を回避するには合理的な方法はありますか?

+0

/{name}/{id}.htmlのようなルートを使用しない理由 –

+0

のような特別な/ 167あなたは非常に簡単にあなたのIDを選択することができます –

+0

@AmitGupta URLのパターンは、(私の場合はもちろん)のようなものではないと仮定して –

答えて

1

同時にあなたのルートで、あなたの方法で({名}、その後){ID}最初に置く:

Route::get('/product/{category}/{all}/**{id}**-**{name}**.html', ['as' => 'product.single', 'uses' => '[email protected]'])->where('id', '[0-9]+'); 
0

有効試してみてください - キャラクター名に

Route::get('/product/{category}/{all}/{name}-{id}.html', ['as' => 'product.single', 'uses' => '[email protected]'])->where(['id' => '[0-9]+','name' => '[a-zA-Z-]+']); 
2

ルートのIDと名前を簡単に置き換えることができます。/

関連する問題