我有一个价格
的刀片模板表单 {!!Form::open(array('method'=>'POST','route'=>array('order.store'))) !!}
<div class="form-group">
{!! Form::label('price', 'Price:', ['class' => 'control-label']) !!}
{!! Form::number('price', null, ['class' => 'form-control']) !!}
</div>
{!! Form::submit('Submit Order', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
控制器收取价格并将其发送至电子邮件:
class OrderController extends Controller
{
public function store()
{
$data=Input::all();
//Validation rules
$rules = array (
'price' => 'required|regex:/[\d]{2}.[\d]{2}/',
);
$validator = Validator::make ($data, $rules);
//If everything is correct than run passes.
if ($validator -> passes()){
//Send email using Laravel send function
Mail::send('emails.order_received', $data, function($msg) use ($data)
{
//email 'From' field: Get users email add and name
$msg->from($data['email'] , $data['owner']);
//email 'To' field: change this to emails that you want to be notified.
$msg->to('on@dx.com', 'Rn')->subject('New Order');
});
return Redirect::route('order.index')->with('flash_notice', 'Thank you');
}
else
{
//return contact form with errors
return Redirect::route('order.index')->withErrors($validator)->with('flash_error', 'This is not how one shops');
}
}
}
该表格将传递给电子邮件模板。
<?php
//get the first name
$item = Input::get('item');
$manufacturer = Input::get ('manufacturer');
$price = Input::get('price');
$quantity = Input::get ('quantity');
$product_code = Input::get ('product_code');
$owner = Input::get ('owner');
$email = Input::get("email");
$created_at = Input::get("date");
?>
当我尝试添加价格,即(3.65)时,刀片形式继续返回整数的错误消息。我的迁移将价格作为小数(2,2)我无法理解为什么我的表单会抛出错误。任何帮助将非常感激。
P.S。除了正则表达式规则,我已经尝试了浮点数和小数。现在,如果我尝试使用正则表达式规则输入2而不是02.00,则会根据正则表达式引发错误。但是,如果我尝试遵循正则表达式规则,它需要一个整数(错误说明在X和Y之间)。
由于 中号
答案 0 :(得分:1)
首先,您肯定希望使用numeric
规则进行验证。
其次,您使用的是HTML5输入字段number
,默认情况下只接受整数,而不是浮点数。
如果您希望它也接受浮点数,因此不会触发内置验证的浏览器,请将您的代码更改为以下内容:
{!! Form::number('price', null, ['class' => 'form-control', 'step' => 'any']) !!}
或者,当然,您可以使用text
输入并自行进行内联验证。