我正在尝试使用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 .