2

Productowitchにdeatributeprecioを拡張するPlatoというクラスがあります。セッターはここで定義されます:

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

   return $this;
}

そして、次の方法でDBに新しい要素を追加しようとしています。

$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は、/ Users / luis / git /servinowServer-luis/src/Servinow/EntitiesBundle/Entityで呼び出されるdouble、double指定のインスタンスである必要があります/PlatoRepository.php(41行目)および/Users/luis/git/servinowServer-luis/src/Servinow/EntitiesBundle/Entity/Producto.php169行目で定義

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 に答える