2

我有一个名为 Plato 的类,它扩展了 Producto 女巫包含 de atribute precio。设置器在这里定义:

public function setPrecio(\double $precio)
{
   $this->precio = $precio;

   return $this;
}

我试图通过以下方式向数据库添加一个新元素:

$plato = new Plato; 
$em = $this->getEntityManager();
 // I have tryed this three ways to insert
$plato->SetPrecio(doubleval($precio));  
$plato->SetPrecio((double) 2);
$plato->SetPrecio(2.0);

$em->flush();

它给了我以下错误消息:

可捕获的致命错误:传递给 Servinow\EntitiesBundle\Entity\Producto::setPrecio() 的参数 1 必须是 double 的实例,double 给定,在 /Users/luis/git/servinowServer-luis/src/Servinow/EntitiesBundle/Entity 中调用/PlatoRepository.php 在第 41 行并在 /Users/luis/git/servinowServer-luis/src/Servinow/EntitiesBundle/Entity/Producto.php 第 169 行中定义

4

1 回答 1

3

以这种方式修改setPrecio()功能

public function setPrecio($precio)
{
   $this->precio = $precio;

   return $this;
}

你可以使用类似的东西

gettype($precio)[...];
if(is_numeric($precio))[...];

对于类型控制,在将其设置为之前$this


请记住

类型提示只能是对象和数组(自 PHP 5.1 起)类型。不支持使用 int 和 string 进行的传统类型提示。

于 2012-12-06T14:11:03.177 回答