イメージこれは簡単なイメージです。私は '../area/England'や '../area/United%20States'のようなURLを持っています。私は '../area/england'と '../area/united-states'になりたいと思っています。Laravelクリーンリンク(スペースまたは大文字なし)
これらの領域は、私のデータベースに「England」と「United States」として保存されています。私は、それらを私が望む価値として保存することができると思っていましたが、それはURL( '英国'と '米国の国家')には良いでしょうが、ページに表示するときに元に戻す必要があります(例:「米国へようこそ!」)。とにかく私は変換を行う必要があるので、このオプションは素晴らしいものではありません。
私の質問は、 です。1.このタイプのURL操作を行うベストプラクティスは何ですか? および 2.コードはどこに記入しますか?次に、あなたのRouteServiceProvider::boot
方法では、あなたが書くことができ
Route::get('/area/{country}',function(Country $country){})
:(strtolowerとstr_replace)
おかげ
お返事ありがとうございます。私はルートを変更してから、あなたが提供したものをRouteServiceProviderに追加しようとしましたが、まだ間違った出力を得ています。正直言って私はRouteServiceProviderを自分で使って、なぜ動作していないのかをデバッグするのには不十分です。 – Aptorian
'$ router-> bind'関数で' dd($ value) 'を実行すると、' england'または 'united-states'というURLセグメントを受け取っていることがわかります。その関数から返されるものは、 'Route :: get()'のあなたの関数が受け取るものです。 URLセグメントをモデルに変換する関数を書いているだけです。あなたが見ているものを投稿すれば、私はさらに助けてくれるかもしれません。 – Jeff
こんにちは@ジェフ。私はおそらく私は私の質問をそれが可能な限り明確にしていないと思っています、そして、それは混乱がどこにあるかです。上記のコードでは、私のURLはまだ/ area/Englandです。 URLをすべて小文字にするか空白にするのではなく、データベースで大文字小文字を区別しない一致を検索しているようです。ああ、dd($ value)は 'England'を出力します。 – Aptorian