闭包定义
可以使用闭包的方式定义一些特殊需求的路由 而不需要执行控制器的操作方法了 例如:
Route::get('hello', function () {return 'hello,world!'; });
参数传递
闭包定义的时候支持参数传递 例如:
Route::get('hello/:name', function ($name) {return 'Hello,' . $name; });
规则路由中定义的动态变量的名称 就是闭包函数中的参数名称 不分次序。
因此 如果 访问的URL地址是:
http://serverName/hello/thinkphp
则浏览器输出的结果是:
Hello,thinkphp
依赖注入
可以在闭包中使用依赖注入 例如:
Route::rule('hello/:name', function (Request $request, $name) { $method = $request->method();return '[' . $method . '] Hello,' . $name; });
指定响应对象
更多的情况是在路由闭包中指定响应对象输出 例如:
Route::get('hello/:name', function (Response $response, $name) {return $response ->data('Hello,' . $name) ->code(200) ->contentType('text/plain'); });
这种情况可以直接写成
Route::get('hello/:name', response() ->data('Hello,' . $name) ->code(200) ->contentType('text/plain'));
更多的情况是直接对资源文件的请求设置404访问
// 对于不存在的static目录下的资源文件设置404访问Route::get('static', response()->code(404));
尊贵的董事大人
英文标题不为空时 视为本栏投稿
需要关键字 描述 英文标题