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') }}">

 

posted @   沫栀  阅读(155)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示