使用类进行Laravel验证

时间:2018-04-18 20:29:45

标签: laravel laravel-5

我正在尝试使用Laravel验证:as described here

我不打算放置整个规则类,因为它直接来自artisan make:rule。

问题:

当我尝试测试' false'在这里:

function passes($attribute, $value)
{
   return false; //testing 'false' logs me out
}

这是我在控制器中使用它的方式:

$this->validate($request, [
   'image_64' => ['required', new \App\Rules\Base64Rule]
]);

这就像重定向不会形成页面,而是索引页面 - 在我的情况下会将用户记录下来(除其他外)。

当方法'通过时,是否有任何受保护的var标记正确的重定向路由?返回false?

有人遇到过这样的事吗?

修改

山姆,

正如我所提到的,规则类是原始的 - 新生成的:


namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class Base64Rule implements Rule
{
    /**
     * Create a new rule instance.
     *
     * @return void
     */
    public function __construct()
    {

    }

    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        return false;
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return 'The validation error message.';
    }
}

如果我在控制器上运行,请执行以下操作:

use App\Rules\Base64Rule;

$rule = new Base64Rule;
dd($rule->passes('image_64', 'udfshjbfisuusoshgosghosh'));

我在规则的方法传递()中得到了我所拥有的一切。

如果我在规则的方法中使用pass()返回true;它运作正常。

如果我在规则的方法中使用pass()dd(' some'),我会得到一些'在那个控制器测试中。

当测试结果为“假”时并使用常规验证码:

use App\Rules\Base64Rule;

$this->validate($request, [
    'image_64' => ['required', new Base64Rule]
]);

...我被重定向到索引页面。

我必须遵循请求/回应,看看,Laravel失败了,为什么......我猜。它是我的代码还是错误。

0 个答案:

没有答案
相关问题