Page::setValuesFrom($page,[$fields])
Version 3.8
Set values from other page
Version 3.8
Set values from other page
Copy field values from other page values.
Source page can be from different folder than target.
Object Page
$Delivery->setValuesFrom($Order,'name, delivery_address=address');
Create Delivery from Order
// Open ORder and create Delivery
$Order = $this->get('page', 'order', $orderId);
$Delivery = $this->get('page', 'delivery');
// Copy field values from Order
$Delivery->setValuesFrom($Order,'
customer,
product,
delivery_address,
delivery_instruction
');
// Set additional values
$Delivery->setValue('order', $Order->getId();
$Delivery->setValue('status', 'New');
// Save and open Delivery
$Delivery->save()->open();
If target page has different field name than source, you can define a custom name mapping: targetField = sourceField
$Delivery->setValuesFrom($Order,'
delivery_date = agreed_delivery_date
');
$Delivery->setValuesFrom($Order,'
receiver = client.contact_person,
town = delivery_address.toimipaikka,
summary = <DIV>{order_date.getMonth()} {order.client.contact_person}</DIV>
');
If target field is not recogniced as a field or value mapping, it is set as plain text:
$Delivery->setValuesFrom($Order,'
total_amount,
maksuaika = 14
maksuehto = Netto
');