Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Money Bundle Laravel Package

babdev/money-bundle

View on GitHub
Deep Wiki
Context7

Validator

The MoneyBundle provides support for making a number of comparisons for Money\Money instances using the Symfony Validator component.

Available Constraints

All constraints support either a Money\Money instance or a scalar value (string/int/float) which can be parsed into a Money\Money instance.

MoneyEqualTo

Validates that a value is equal to another value as defined in the options. To validate that a value is not equal, see MoneyNotEqualTo.

MoneyNotEqualTo

Validates that a value is not equal to another value as defined in the options. To validate that a value is equal, see MoneyEqualTo.

MoneyLessThan

Validates that a value is less than another value as defined in the options. To validate that a value is less than or equal to another value, see MoneyLessThanOrEqual. To validate a value is greater than another value, see MoneyGreaterThan.

MoneyLessThanOrEqual

Validates that a value is less than or equal to another value as defined in the options. To validate that a value is less than another value, see MoneyLessThan.

MoneyGreaterThan

Validates that a value is greater than another value as defined in the options. To validate that a value is greater than or equal to another value, see MoneyGreaterThanOrEqual. To validate a value is less than another value, see MoneyLessThan.

MoneyGreaterThanOrEqual

Validates that a value is greater than or equal to another value as defined in the options. To validate that a value is greater than another value, see MoneyGreaterThan.

Constraint Options

The constraints support the following extra options, similar to the comparison constraints provided by the Validator component:

  • groups - Defines the validation group(s) this constraint belongs to
  • message - This is the message that will be shown if the value fails the validation check; messages have the following parameters available:
    • {{ compared_value }} - The value being compared to
    • {{ compared_value_type }} - The expected value type
    • {{ value }} - The current (invalid) value
  • payload - This option can be used to attach arbitrary domain-specific data to a constraint, it is not used by the Validator component, but its processing is completely up to you
  • propertyPath - Defines the object property whose value is used to make the comparison
  • value - This option is required; it defines the value to compare to, this should be a Money\Money instance or a scalar value (string/int/float) that can be parsed into a Money\Money instance

Form Support

When used alongside the Symfony Form component, the constraints can be used with your forms to validate your data.

Examples

Attributes

<?php

namespace App\Entity;

use BabDev\MoneyBundle\Validator\Constraints as MoneyAssert;
use Doctrine\ORM\Mapping as ORM;
use Money\Money;

#[ORM\Entity]
class Invoice
{
    #[ORM\Embedded(class: Money::class]
    #[MoneyAssert\MoneyGreaterThanOrEqual(value: 0)]
    public Money $tax_due;

    public function __construct()
    {
        $this->tax_due = Money::USD(0);
    }
}

PHP

<?php

namespace App\Model;

use BabDev\MoneyBundle\Validator\Constraints as MoneyAssert;
use Money\Money;
use Symfony\Component\Validator\Mapping\ClassMetadata;

class Invoice
{
    public Money $tax_due;

    public function __construct()
    {
        $this->tax_due = Money::USD(0);
    }

    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        $metadata->addPropertyConstraint(
            'tax_due',
            new MoneyAssert\MoneyGreaterThanOrEqual(
                value: 0,
            ),
        );
    }
}

XML

<?xml version="1.0" encoding="UTF-8" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping https://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">

    <class name="App\Entity\Invoice">
        <property name="tax_due">
            <constraint name="MoneyGreaterThanOrEqual">
                <option name="value">0</option>
            </constraint>
        </property>
    </class>
</constraint-mapping>

YAML

App\Entity\Invoice:
    properties:
        tax_due:
            - MoneyGreaterThanOrEqual:
                value: 0
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
cuci/prototurk-sdk
gos/pubsub-router-bundle
cuci/prototurk-sdk-symfony
clementtalleu/easyadmin-markdown-bundle
codeflextech/permission-manager
karnoweb/livewire-datepicker
sayedenam/sayed-dashboard
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment