2017-09-04 10 views
0

以下の例は:laravelルートの呼び出し関数のシーケンス?

Route::get('users/{id}', function ($id) { 
    //code 
})->where('id', '[0-9]+'); 

無名関数最初に呼び出されるか、「どこで」関数が最初に呼ばれるのですか?

私の意見では、無名関数が最初に呼び出されると思います。しかし、私はこれが合理的ではないと思う、私はidが匿名関数を呼び出すことができる正規表現を満たすことが合理的だと思う。

正確にはどのような順序ですか?

+0

performRoute($obj) // this is only for example

あなたはここにルート機能を確認することができますか?彼は経路について話しているが、雄弁ではない。 – Wreigh

+0

私の悪い私はそれが夕方には遅すぎたと思います。 –

答えて

0

whereが最初に実行されます。

なぜですか?

get関数は、objectwhereを返します。したがって、Laravelがルートを呼び出すと、ルートオブジェクトが最初に構築されてから、ルートのアクションが実行されます。

$obj = Route::get() // returns an object, meaning that object returned has a function `where`. 

$obj->where() // still returns the same object but validated. 

したがって、whereコールの後にオブジェクトがあります。それがLaravelがそのルート上で行動を起こすのに使うものです。

のように:あなたが話しているか@SariYono https://github.com/laravel/framework/blob/bd352a0d2ca93775fce8ef02365b03fc4fb8cbb0/src/Illuminate/Routing/Route.php

関連する問題