ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] Laravel请求组件用的是symfony/http-foundation组件 # 取值 ~~~ //use Illuminate\Http\Request; public function index(Request $request) //通过依赖注入 { //取值 $result=$request->input('name'); //如果没有值,想给个默认值 $result=$request->input('sex','未知'); //如何判断有没有传这个值呢? if ($request->has('name')) { echo $request->input('name'); //有就输出 } else { echo '无参数'; //没有就输出这个 } //输出全部 $res=$request->all(); } ~~~ # 判断请求类型 ~~~ echo $request->method(); //判断是不是post if ($request->isMethod('POST')) { echo 'yes'; } //判断是不是ajax请求 $res=$request->ajax(); //是就true 不是为false //判断是不是控制器下的某个方法 Route::get('/stu','StudentController@index'); $res=$request->is('student/*'); ~~~ # 其他常见用法 ~~~ Request::only(''); //只要请求参数里面的值 Request::except(''); //只要过滤请求参数里面的值 Request::url(); //输出url,?后面不输出 Request::fullurl(); //输出完整url,?也输出 ~~~ # Route 中的 Parameter Laravel 中获取 route 中的 parameter 的方法: ~~~ //假设 route 是这样的: $router->resource('posts.comments', PostCommentController::class); //获取的方法: $postId = $request->posts; $commentId = $request->comments; ~~~ Lumen 中的 routeResolver 有点不太一样,不能这样: ~~~ $postId = $request->posts; ~~~ 也不能这样: ~~~ $postId = $request->route('posts'); ~~~ 报错:Call to a member function parameter() on array 所以正确的做法是自己解析:$request->route(),略坑。 有人写了一个 helper 的方法: ~~~ if (!function_exists('route_parameter')) { /** * Get a given parameter from the route. * * @param $name * @param null $default * @return mixed */ function route_parameter($name, $default = null) { $routeInfo = app('request')->route(); return array_get($routeInfo[2], $name, $default); } } ~~~