2017-09-05 16 views
0

Laravelで動的パラメータを使用してget Routeを変更する方法を理解するのに問題があります。 私は、www.page.com/{name_of_company}私web.phpでLaravelの動的get routeパラメータを変更します。

の線に沿って何かを動的にルーティングパラメータとして会社名を追加するルートを持って、ルートは次のようになります。

Route::get('/{company_name}', ['uses' => 'Frontend\[email protected]', 'as' => 'CompanyShow']); 

私はstr_replace関数のいくつかの並べ替えを使用する予定だったので、空白を削除するなど、特定の文字などを変更するために、{company_name}変数を変更する必要があります、私はちょうど私がこの関数を動的パラメータを使用して、URL内の新しく「クリーン」な名前のバージョンで正常に呼び出されるようにします。 getルートの中の動的変数を直接操作しようとしましたが、私もミドルウェアを使用しようとしましたが、最終的にどのように行うのか分からなかったので、ここで質問しています。これを実現する方法を...

答えて

1

はあなたのミドルウェアでthisのようなものを試してみてください、あなたは道

+0

私はあなたがコントローラーにし、ミドルウェアとして言ったことを追加しようとしたリクエストパラメータを上書きすることができ、私は変更することができていますパラメータが、URLヘッダーで変更されません???主にそれがしないURLヘッダーを変更する必要があります...これは私のミドルウェアコードです。私は会社のIDを取得して会社に変更します: company_name = UserMoreInfo :: where( 'na_user_more_info.user_id '、request() - > segment(2)) - > pluck(' company_name ')[0]; $ request-> merge([ 'id' => $ company_name ]); // $ request-> route() - > setParameter( 'id'、$ company_name); return $ next($ request); – Benny

+0

これを試してください:https://laravel.com/docs/5.4/routing#explicit-binding>解決ロジックのカスタマイズ – Quezler

+0

@Quezlerに感謝します。私は会社名をRouteServiceProviderクラス内のIDに変換するために明示的なバインディングを使用しました。このクラスはIDとしてコントローラクラスに転送されました。 – Benny

関連する問題