2012-01-08 7 views
-1

私はSymfony 2のドキュメントを読んでいますが、私はthe model part of the bookで立ち往生しています。私は、コンソール経由でドキュメント上で述べたようにセッターとゲッターを生成し、同じエンティティクラスに私にこれを与えたSymfony 2でのDoctrine 2倍の小数点を告発する

// src/Acme/StoreBundle/Entity/Product.php 
namespace Acme\StoreBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity 
* @ORM\Table(name="product") 
*/ 
class Product 
{ 
    // ... 

    /** 
    * @ORM\Column(type="decimal", scale=2) 
    */ 
    protected $price; 

    // .. 
} 

/** 
* Set price 
* 
* @param dicimal $price 
*/ 
public function setPrice(\decimal $price) 
{ 
    $this->price = $price; 
} 

ので、Doctrineがある $priceスケール2のdicimalです型ヒントを使用して$priceを10進数にする必要があります。

Catchable Fatal Error: Argument 1 passed to 
Acme\StoreBundle\Entity\Product::setPrice() 
must be an instance of decimal, double given, 

これは、それがdefaultCountrollerで呼ばれる方法です: 問題は、それは常にこの例外を発生さ

ここ
// ... 
public function createAction() 
    { 
    $product = new Product(); 
    $product->setName('A Foo Bar'); 
    $product->setPrice('19.99'); 
    $product->setDescription('Lorem ipsum dolor'); 

    $em = $this->getDoctrine()->getEntityManager(); 
    $em->persist($product); 
    $em->flush(); 

    return new Response('Created product id '.$product->getId()); 
} 

彼らは(ドキュメントのバグかもしれない)が、たとえ文字列で渡しています私はそれを小数に変えます、私は同じ例外を得続けます。 幸いにも私はただ髪を削っただけですが、これで私を助けてください。何が問題ですか?

答えて

3

\ decimalは、PHPではシステムクラスまたはタイプではありません。タイプヒントを削除するだけです。

+0

はい、私は知っています、ヒントは理由のためにそこにあり、それと動作するはずですが、そうではありません。まだ問題は残っています。 – tikider

関連する問題