如何在字段到达Input :: get(“my_field”)之前对其进行过滤?

时间:2013-11-29 19:37:38

标签: laravel-4

我想要删除所有输入字段中的“fck”一词。我知道我之后可以做到但是如果我之前可以做到这一点会很棒,所以它适用于我的整个应用程序。

换句话说,我在哪里修改Laravel 4的输入(或http或请求)类?

1 个答案:

答案 0 :(得分:0)

嗯,有一些可能性。最简单和最简单的方法是简单地创建一个新的Input外观并覆盖其get方法。像这样:

应用/扩展/ FilterableInput.php

use Illuminate\Support\Facades\Input as IlluminateInput;

class FilterableInput extends IlluminateInput {

    public static function get($key = null, $default = null)
    {
        return static::filterInput(parent::get($key, $default));
    }

    // Filtering method
    protected static function filterInput($value)
    {
        if (is_string($value))
        {
            return str_replace('fck', '***', $value);
        }

        return $value;
    }
}

请勿忘记使用Input替换 app / config / app.php 上的FilterableInput别名,并将app/extensions添加到您的< strong> composer.json autoload.classmap设置。