Select中的验证问题:Laravel 5.3
我的表格如下所示Select中的验证问题:Laravel 5.3,laravel,laravel-5,laravel-5.2,laravel-5.1,laravel-5.3,Laravel,Laravel 5,Laravel 5.2,Laravel 5.1,Laravel 5.3,我的表格如下所示 <form method="POST" action="http://localhost:1234/Update" accept-charset="UTF-8"> <input name="_token" type="hidden" value="bVyYZGPprZKHab8sQXairqhtwszTeQ36LRhp9u2k"> <input type="hidden" name="_token" value="bVyYZGPpr
<form method="POST" action="http://localhost:1234/Update" accept-charset="UTF-8">
<input name="_token" type="hidden" value="bVyYZGPprZKHab8sQXairqhtwszTeQ36LRhp9u2k">
<input type="hidden" name="_token" value="bVyYZGPprZKHab8sQXairqhtwszTeQ36LRhp9u2k">
<select class="form-control" name="TypeID">
<option value="-1">Please select Payment Type</option>
<option value="2">Bitcoin</option>
<option value="1">Paypal</option>
<option value="3">Pioneer</option>
</select>
<button type="submit">Update</button>
</form>
public function UpdatePaymentDetails(PaymentDetailsRequest $request) {
}
class PaymentDetailsRequest extends Request {
public function authorize()
{
return true;
}
public function rules() {
return [
'TypeID' => 'required|min:1',
];
}
}
请求类在下面
<form method="POST" action="http://localhost:1234/Update" accept-charset="UTF-8">
<input name="_token" type="hidden" value="bVyYZGPprZKHab8sQXairqhtwszTeQ36LRhp9u2k">
<input type="hidden" name="_token" value="bVyYZGPprZKHab8sQXairqhtwszTeQ36LRhp9u2k">
<select class="form-control" name="TypeID">
<option value="-1">Please select Payment Type</option>
<option value="2">Bitcoin</option>
<option value="1">Paypal</option>
<option value="3">Pioneer</option>
</select>
<button type="submit">Update</button>
</form>
public function UpdatePaymentDetails(PaymentDetailsRequest $request) {
}
class PaymentDetailsRequest extends Request {
public function authorize()
{
return true;
}
public function rules() {
return [
'TypeID' => 'required|min:1',
];
}
}
有什么问题吗?
当我没有选择TypeID时,它不会进行验证,我是否遗漏了什么?您的
TypeID
可能是作为字符串传递的,并且始终具有2(-1
)的字符长度,因此根据您自己的规则它是有效的。为什么不使用常规的空值作为默认值呢?这将使required
规则失败,并拒绝请求
<select class="form-control" name="TypeID">
<option value="">Please select Payment Type</option>
<option value="2">Bitcoin</option>
<option value="1">Paypal</option>
<option value="3">Pioneer</option>
</select>
尝试向规则中添加一条
数值规则。我怀疑-1
被视为字符串“-1”
,因此min:1
表示字符串必须至少包含一个字符。我建议接受@TomasButeler的。他在同一时间对同一件事进行了调整,并且已经有了答案。干杯我投了反对票。因为这是一个解决方案,而不是一个解决方案。请参阅@ceejayoz发布的评论,但如果您添加了ceejayoz提出的建议,我将收回downvote,并将其标记为已接受。@Helper我已合并@ceejayoz建议。不过,我很好奇为什么你会考虑调整HTML表单。如果OP试图拒绝默认值,考虑到它永远不会被处理或插入数据库,它是'
还是-1
,这真的很重要吗?我认为-1
是不必要的。我认为“numeric
”是一个更好的选择,OP is me:)这篇文章是我创建的。@TomasButeler-1
确实是不必要的,我更喜欢你的空白值。但是,如果没有numeric
规则,Laravel很乐意将hello
验证为有效输入,因为它有五个字符。:-)在这种情况下,我更喜欢像required | In:1,2,3
。我将使用
规则中的来验证选择,并使用数值
来验证数字类型的输入。