或者控制器中使用:
public function index() {
// 可以使用 Input
return Input::has(‘id’) ? ‘存在’ : ‘不存在’;
}
// 这种写法是错误的,默认带过来的是 Request 对象,而不是 Input
Route::get(‘req’, function (Input $input)) {
return $input->get(‘id’, 0);
});
// 这种写法是正确的,控制器中使用也是一样需要注意这点
Route::get(‘req’, function (Request $request)) {
return $request->get(‘id’, 0);
});
三、方式二:Request
- 通过
Request
类来获取数据(use Illuminate\Http\Request
),这里只列一些常用的。
// 获取指定参数,并当没传该参数时附带默认值
Request::get(‘参数名称’, ‘默认值(当参数没传时生效)’);
// 获取所有的用户的输入
Request::all();
// 获取指定指定参数
Request::only([‘参数名称’]);
// 获取除指定指定参数以外的所有参数
Request::except([‘参数名称’]);
// 判断是否存在指定参数
Request::has(‘参数名称’);
// 判断请求类型(当一个接口支持多种请求方式的时候可以进行判断)
Request::isMethod(‘请求方式(get、post、put …)’);
…
// 使用 Request:: 不能导入 use Illuminate\Http\Request;
Route::get(‘req’, function () {
return Request::has(‘id’) ? ‘存在’ : ‘不存在’;
});
// 使用 $request 必须导入 use Illuminate\Http\Request;
Route::get(‘req’, function (Request $request) {
return $request->has(‘id’) ? ‘存在’ : ‘不存在’;
});
控制器(例如:LoginController.php)
中使用:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Input; class LoginController extends Controller { // 登录 public function index(Request $request) { // 不能使用 Request:: 会报错,控制器方法中只能使用 $request // return Request::has('id') ? '存在' : '不存在'; // 可以使用 Input:: // return Input::has('id') ? '存在' : '不存在'; // 每个路由对象都会有 $request 对象 return $request->has('id') ? '存在' : '不存在'; } } * 路由参数 - 细节注意 // 如果不需要使用 $request,且有路由参数 Route::get('req/{tag?}', function ($tag = '') { return $tag; }); // 如果需要使用 $request,且有路由参数 Route::get('req/{tag?}', function (Request $request, $tag = '') { // return $request->has('id') ? '存在' : '不存在'; return $tag; }); #### []( )四、方式三:`request()` * `request()` 辅助函数方式获取,不需要导入任何库或者命名空间,直接使用。 `request()` 函数返回的就是 `Request` 类对象,所以他两的可用方法是一致的。 // 获取指定参数,并当没传该参数时附带默认值 request()->get('参数名称', '默认值(当参数没传时生效)'); // 获取所有的用户的输入 request()->all(); // 获取指定指定参数 request()->only(['参数名称']); // 获取除指定指定参数以外的所有参数 request()->except(['参数名称']); // 判断是否存在指定参数 request()->has('参数名称'); // 判断请求类型(当一个接口支持多种请求方式的时候可以进行判断) request()->isMethod('请求方式(get、post、put ...)'); .... * 如果需要这个对象更多的可用方法,可以输出该对象的所有可用方法。 #### 最后 == 就答题情况而言,第一问100%都可以回答正确,第二问大概只有50%正确率,第三问能回答正确的就不多了,第四问再正确就非常非常少了。其实此题并没有太多刁钻匪夷所思的用法,都是一些可能会遇到的场景,而大多数人但凡有1年到2年的工作经验都应该完全正确才对。 只能说有一些人太急躁太轻视了,希望大家通过此文了解js一些特性。 并祝愿大家在新的一年找工作面试中胆大心细,发挥出最好的水平,找到一份理想的工作。