【问题标题】:run each input request through a function in Laravel通过 Laravel 中的函数运行每个输入请求
【发布时间】:2017-09-29 14:00:25
【问题描述】:

对 Laravel 非常陌生。尝试设置一个简单的联系表格来熟悉它。我通过 ajax 发送表单数据,并在 javascript 中处理每个输入:

encodeURIComponent($("#contact-name").val())

如何通过

运行所有这些输入
urldecode()

在 php 方面无需手动执行每一项?

比如我想用这个:

$this->validate($request, [
        'name' => 'required',
        'email' => 'required|email',
        'message' => 'required'
]);

我不能,因为电子邮件地址中的@ 被编码,因此有效电子邮件的验证规则返回 false。

我需要让请求中的所有输入通过urldecode() 运行,然后放回原处,以便我可以使用 Laravel 提供的所有方便的东西。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    就在你 $this->validate(... 之前,编写以下代码:

    foreach($request->all() as $key => $value)
    {   
        $request->merge(array( $key => urldecode($value) ));
    }
    

    上面的 foreach 循环会将 所有 输入字段替换为其 urldecoded 值。

    【讨论】:

    • 优秀的解决方案!我不敢相信我在筛选文档后错过了 $request 的合并方法。谢谢!
    猜你喜欢
    • 2019-04-07
    • 2022-11-17
    • 2023-04-02
    • 2021-04-19
    • 1970-01-01
    • 2019-03-06
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多