ルートで定義されたパラメータ:
Route::get('post/{id}', 'PostController@content' );
コントローラー メソッドでルーティング パラメーターをキャプチャする: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">class PostController extends Controller
{
public function content($id)
{
//
}
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
Laravel はルーティング パラメーターとクエリ文字列パラメーターを同時にキャプチャします
どうすれば両方をキャプチャできますかコントローラー? ルートで定義されたパラメーターは、URL クエリ文字列のパラメーターも受け取ることができます。たとえば、リクエスト リンクは次のようになります
#http://example.com.cn/post/1?from=index 公式 Web サイトのドキュメントからの説明の引用#依存関係の挿入とルート パラメーター
コントローラー メソッドがルート パラメーターからの入力も期待している場合は、他の依存関係の後にルート パラメーターをリストする必要があります。
つまり、コントローラー メソッドが依存関係を挿入するときにルート内のパラメーターを引き続き使用したい場合は、メソッドの依存関係の後にルート内のパラメーターをリストする必要があります。次に例を示します。Laravel は複数のオプションパラメータをキャプチャします<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PostController extends Controller { public function content(Request $request, $id) { $from = $request->get('from') } }ログイン後にコピー
さらに、laravel routing:
Route::get('/article/{ id}/{source?}/{medium ?}/{campaign?}', 'ArticleController@detail')コントローラー メソッドのオプションのパラメーターは、デフォルト パラメーターとして定義する必要があります: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> public function detail(Request $request, $id, $source = '', $mediun = '', $campaign = '')
{
//
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
これを定義した後、URL で 0 ~ 3 個のオプション パラメータを渡すことができますが、それらは順序どおりである必要があります。つまり、2 番目のオプション パラメータを渡す場合は、最初のオプション パラメータが存在する必要があります。
この例では
"wx " は変数
$source
に渡され、"h5"
は変数 $medium
に渡されます。
推奨: