以下示例:
Route::get('users/{id}', function ($id) {
//code
})->where('id', '[0-9]+');
首先调用匿名函数或首先调用“where”函数?
在我看来,我认为首先会调用匿名函数。但我认为这是不合理的,我认为只有符合正则表达式的id才能调用匿名函数是合理的。
那究竟是什么序列?
答案 0 :(得分:0)
where
将首先运行。
为什么?
get
函数返回object
以及where
。因此,如果Laravel调用 Route ,则会在触发Route的操作之前首先构建Route对象。
$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将用于在该路线上执行操作的内容。
赞:performRoute($obj) // this is only for example
您可以在此处查看路线功能:https://github.com/laravel/framework/blob/bd352a0d2ca93775fce8ef02365b03fc4fb8cbb0/src/Illuminate/Routing/Route.php