ホームページ  >  記事  >  PHPフレームワーク  >  Laravelはどのようにしてルーティングパラメータとクエリ文字列のパラメータを同時に受け取るのでしょうか?

Laravelはどのようにしてルーティングパラメータとクエリ文字列のパラメータを同時に受け取るのでしょうか?

藏色散人
藏色散人転載
2021-03-04 11:22:202568ブラウズ

次のチュートリアルコラムでは、ルーティングパラメーターとクエリ文字列のパラメーターを同時に受け取るための Laravel を紹介します。 Laravel はルート パラメーターとクエリ文字列内のパラメーターの両方を受け取ります

Laravel はコントローラーで許可しますこのメソッドは、ルートで定義されたパラメータを次のように取得します:

ルートで定義されたパラメータ:

Route::get('post/{id}', 'PostController@content' );


コントローラー メソッドでルーティング パラメーターをキャプチャする: <pre class="brush:php;toolbar:false">class PostController extends Controller {     public function content($id)     {         //     } }</pre>Laravel はルーティング パラメーターとクエリ文字列パラメーターを同時にキャプチャします

どうすれば両方をキャプチャできますかコントローラー? ルートで定義されたパラメーターは、URL クエリ文字列のパラメーターも受け取ることができます。たとえば、リクエスト リンクは次のようになります

#http://example.com.cn/post/1?from=index

公式 Web サイトのドキュメントからの説明の引用

#依存関係の挿入とルート パラメーターコントローラー メソッドがルート パラメーターからの入力も期待している場合は、他の依存関係の後にルート パラメーターをリストする必要があります。

つまり、コントローラー メソッドが依存関係を挿入するときにルート内のパラメーターを引き続き使用したい場合は、メソッドの依存関係の後にルート内のパラメーターをリストする必要があります。次に例を示します。

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PostController extends Controller
{

    public function content(Request $request, $id)
    {
        $from = $request->get('from')
    }
}
Laravel は複数のオプションパラメータをキャプチャします

さらに、laravel routing:

Route::get('/article/{ id}/{source?}/{medium ?}/{campaign?}', 'ArticleController@detail')

コントローラー メソッドのオプションのパラメーターは、デフォルト パラメーターとして定義する必要があります: <pre class="brush:php;toolbar:false">    public function detail(Request $request, $id, $source = '', $mediun = '', $campaign = '')     {         //     }</pre>これを定義した後、URL で 0 ~ 3 個のオプション パラメータを渡すことができますが、それらは順序どおりである必要があります。つまり、2 番目のオプション パラメータを渡す場合は、最初のオプション パラメータが存在する必要があります。

URL の例:

http://example.com.cn/article/1/wx/h5?param1=val1¶m2=val2


この例では
"wx " は変数 $source
に渡され、"h5" は変数 $medium に渡されます。 推奨:

最新の 5 つの Laravel ビデオ チュートリアル

以上がLaravelはどのようにしてルーティングパラメータとクエリ文字列のパラメータを同時に受け取るのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。