【问题标题】:Laravel disable or enable prepare input for validationLaravel 禁用或启用准备输入以进行验证
【发布时间】:2020-05-01 23:20:20
【问题描述】:

我们如何禁用或启用prepareForValidation

如果我有

public function A(TasksRequest $request) <-- no need prepareForValidation in TasksRequest ( disable )

public function B(TasksRequest $request) <-- need prepareForValidation in TasksRequest ( enable )

【问题讨论】:

    标签: laravel laravel-6 laravel-7


    【解决方案1】:

    请求您的第一次互动,这是目的。因此,如果您不想使用验证,请将 TasksRequest 更改为 Request。

    因评论而更新

    prepareFolValidation 是 Requests 中使用的方法。因此,如果您的 prepareForValidation 对于不同的请求是可选的,请在 $request 中发送密钥,然后在 prepareForValidation 方法中进行检查。 或者(推荐)使用不同的Request

    更新第二条评论

    protected function prepareForValidation()
    {
        if(!request('disabled'))
        {
            $this->merge([
                'slug' => Str::slug($this->slug),
            ]);
        }
    }
    

    【讨论】:

    • 我让 TasksRequest 更好地管理代码以进行验证。我的意思是上面的问题,如果我想在 2 个不同的函数中进行验证,并且在函数 B 中我想合并来自其他数据表的数据请求,有人建议使用 prepareForValidation。那么我们如何才能只在函数 B 中使用 prepareForValidation
    • 我也是这么想的,创建一个唯一的key来检查prepareForValidation的使用。但我想问是否有一种方法可以启用或禁用prepareForValidation。我在文档 laravel 中检查了没有其他信息。
    • 哈哈哈我喜欢你的绝招。谢谢你。实际上想向 github laravel/framework 询问这个问题,也许它可能是 prepareForValidation 可以禁用/启用的附加功能。但它必须立即关闭,因为没有必要。
    • 这对你有帮助吗
    猜你喜欢
    • 2023-03-07
    • 2013-05-25
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多