You are viewing the documentation for the 2.x branch of the MoneyBundle package which has not yet been released. Be aware that the API for this version may change before release.
Doctrine
MongoDB ODM
When used with an application where the Doctrine MongoDB ODM (and DoctrineMongoDBBundle) is installed, the MoneyBundle defines an appropriate schema allowing Money\Money
objects to be embedded within documents with no extra effort.
All that is required is to define a field on your document as an embedded field with the Money\Money
type, such as the below example document:
<?php
namespace App\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
use Money\Money;
#[ODM\Document]
class Invoice
{
#[ODM\EmbedOne(targetDocument: Money::class)]
public Money $tax_due;
public function __construct()
{
$this->tax_due = Money::USD(0);
}
}
ORM
When used with an application where the Doctrine ORM (and DoctrineBundle) is installed, the MoneyBundle defines an appropriate database schema allowing Money\Money
objects to be used within entities with no extra effort.
All that is required is to define a field on your entity as an embedded field with the Money\Money
type, such as the below example entity:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Money\Money;
#[ORM\Entity]
class Invoice
{
#[ORM\Embedded(class: Money::class)]
public Money $tax_due;
public function __construct()
{
$this->tax_due = Money::USD(0);
}
}