Laravel,Strip非数字,切断输入

时间:2014-05-22 10:32:40

标签: php laravel-4

我的数据库中有一个名为“price”的整数字段

我有一个基本的文本表单字段

{{ Form::text('price', Input::old('price'), array('class' => 'form-control')) }}    

我想从此字段中删除所有非数字输入

在我的控制器中:

$price = Input::get('price');
$price = (string)$price;
$price = preg_replace("/[^0-9,.]/", "", $price);
$price = (int)$price;
$this->title->price = $price;

但是当我输入例如。

时,我运行此代码
123123,2432223

它只会将123123保存到我的数据库中,逗号之后的输入永远不会保存?

2 个答案:

答案 0 :(得分:2)

您正在将字符串转换为整数。整数是整数。你想要转换为(float)或(double)。

除此之外,,不被视为小数点。 .是。{/ p>

$this->title->price = (float) preg_replace("/[^\d,./]/", "", Input::get("price"));

答案 1 :(得分:1)

这应该有效:

$this->title->price = preg_replace('/[^0-9]/', '', Input::get('price'));