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

我不打算放置整个规则类,因为它直接来自工匠制造:规则 .

问题:

当我尝试在这里测试'假'时:

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

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

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

这就像重定向不会形成页面,而是索引页面 - 在我的例子中,它将用户输出(除其他外) .

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

有人遇到过这样的事吗?

EDIT

山姆,

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

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()中的所有内容 .

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

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

当测试为'false'并且使用常规验证代码时:

use App\Rules\Base64Rule;

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

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

我必须按照请求/回应看看,Laravel失败了,为什么......我猜 . 它是我的代码,还是一个bug .