2017-02-14 20 views
0

私はLaravelの初心者です。 Laravelのドキュメントでは、このようにパラメータを渡すことができます。Laravel Routesと 'Class @ Method'表記法 - URLのパラメータをメソッドに渡す方法

Route::get('user/{id}', function ($id) { 
    return 'User '.$id; 
}); 

これは非常に直感的です。

Route::get('geolocate', 'Api\[email protected]'); 
# which of course will call geolocate() in that class 

そして、ここで私は、変数を渡したいコードは次のとおりです:

Route::get('feed/{identifier}', 'Api\[email protected]'); 

行う方法を質問され、ここで私がroutes.phpで見つかった約束、だプロジェクト内のいくつかの既存のコーディングがありますクラスに$identifierを渡します:

feed($identifier) 

ありがとう!

また、これからもう一つの質問があります。{識別子}はオプションであるとはどのように記されますか?つまり、単に/feed/がこのルートに一致しますか?

/feed/123 

次に、コントローラ内でメソッドが次のようになります:

feed($identifier) 
{ 
    // Do something with $identifier 
} 

Laravelがコントローラにルータのパラメータをマッピングするために十分にスマートであるあなたが最初のように見えるのリンクを作成する必要があります

+0

Sherif

答えて

1

メソッドの引数は素晴らしいです!

また、あなたはこのようにidentifier値を返すようにRequestオブジェクトを使用することができます。

feed() 
{ 
    Request::get('identifier'); 
} 

どちらの方法は、自分の長所を持って、私は個人的に1つのまたは2のルータのパラメータとつかむための第1の例を使用したいです私がもっと複​​雑なことをする必要がある場合の第2の例です。

+0

Laravelは、基本的に '{identifier}'を宣言することで変数として使用し、それを利用可能にします。私はLaravelがますます好きです:) 'Route :: get()'呼び出しで使用できる第3引数のドキュメントには良いリンクがありますか? –

+0

うん、あなたは本当に好きなだけ多くのルートパラメータを持っている! (それらの多くは難しいことですが...)Laravelのドキュメントは素晴らしいです - 要求オブジェクトはここに文書化されています:https://laravel.com/docs/requests。私の例ではファサードを使用しましたが、それにアクセスする他の方法があります。 – edcs

関連する問題