laravel框架接受用户请求
.5、接收用户输入(request)
https://learnku.com/docs/laravel/8.x/requests/9369#60ee32
接收用户输入的类:use Illuminate\Http\Request;
use Illuminate\Http\Request;
class IndexController extends Controller
{
public function index(Request $request){
dump($request->input("id"));
}
}
.5.2.依赖注入 & 路由参数
如果你的控制器需要从路由参数中获取数据,你应该在其他依赖项之后列入参数。举个例子,你的路由是这样定义的:
Route::get('test/{id}', [TestController::class, 'index']);
use Illuminate\Http\Request;
public function index(Request $request, $id) {
dd($id);
}
注意:$request对象的获取 也可以通过助手函数直接获取 $request = request();
5.3.常见操作
1获取请求路径
$uri = $request->path();
2获取请求url
要获取完整的请求 URL,你可以使用 url 或 fullUrl 方法。 url 方法返回不带查询条件的 URL,而 fullUrl 方法的返回包含查询条件字符串。
// 没有包含查询条件字符串
$url = $request->url();
// 包含查询条件字符串
$url = $request->fullUrl();
3获取请求方式
method 方法将会返回请求的 HTTP 动词。 你也可以使用 isMethod 方法去验证 HTTP 动词与所给定的字符串是否匹配:
$method = $request->method();
if ($request->isMethod('post')) {
//
}
5.4.获取输入
1.获取全部输入(无法获取get请求数据,get请求数据需要通过input逐个获取)
$input = $request->all();
2.获取其中一个数据
没有默认值
$name = $request->input('name');
设置默认值
$name = $request->input('name','laowang');
当处理包含数组的表单时,可以使用 「.」 运算符来访问数组的数据:
$name = $request->input('products.0.name');
$names = $request->input('products.*.name');
获取部分数据
如果需要获取输入数据的子集,你可以使用 only 或 except 方法。它们接受单个 array 或者动态参数列表:
$input = $request->only(['username', 'password']);
$input = $request->only('username', 'password');
$input = $request->except(['credit_card']);
$input = $request->except('credit_card');
4. 判断输入值是否存在
你可以使用 has 来判断当前请求中是否含有指定的值。如果请求中存在该值则 has 方法将会返回 true:
if ($request->has('name')) {
//
}
当给定一个数组时,has 将会判断指定的值是否全部存在:
if ($request->has(['name', 'email'])) {
//
}
5.将数据闪存到session
你也可以使用 flashOnly 方法和 flashExcept 方法将请求数据的子集传送给 session。这些方法在将密码之类的敏感数据排除在 session 外的情况下挺实用的:
$request->flashOnly(['username', 'email']);
$request->flashExcept('password');
6. 获取旧数据
若要获取上一次请求所保存的旧数据,可以在 Request 的实例上使用 old 方法。old 方法会从 session 取出之前被闪存的输入数据:
$username = $request->old('username');
Laravel 也提供了全局辅助函数 old。如果你要在 Blade 模板 中显示旧的输入,使用 old 辅助函数将会更加方便。如果给定字段没有旧的输入,则会返回 null:
<input type="text" name="username" value="{{ old('username') }}">
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!