Milk Admin
Getting started
Abstracts Class
Advanced
Modules
Expressions
Extensions
Form
List
Model
Related Content
Expression System
Milk Admin includes a mini expression language that runs both frontend and backend. This allows using the same logic for calculations, validation, conditional required fields and visibility.
Implementations:
milkadmin/App/ExpressionParser.php(backend PHP)milkadmin/Theme/Assets/expression-parser.js(frontend JS)
What you can do with expressions
- Calculate fields automatically (e.g. total = quantity * price)
- Validate values with custom rules (e.g. end date > start date)
- Show/hide fields or containers based on conditions
- Make a field required only if a condition is true
Where they are executed
- Frontend:
expression-parser.js+milk-form.jsevaluate expressions in real-time on form values. - Backend:
ExpressionParser.phpvalidates data and calculates fields duringvalidate()andfill().
Note: visibility (show/hide) is a frontend feature. On the backend you can still use
requireIf() and validateExpr()
to maintain data consistency and security.
Example
In the Model (RuleBuilder):
public function configure($rule)
{
$rule->int('qty')->required();
$rule->float('price')->required();
$rule->float('total')->calcExpr('[qty] * [price]');
// Conditional required backend
$rule->string('notes')
->requireIf('[qty] > 10')
->error('Notes required for quantity > 10');
}
In the FormBuilder (frontend):
$form->field('total');
$form->field('notes')->requireIf('[qty] > 10', 'Notes required for quantity > 10');
$form->showIf('notes', '[qty] > 10');
The FormBuilder inherits expressions from the model, but it's possible to modify them or add new ones.
Loading...