Код: Выделить всё
use yii\base\Model;
class OrderDto extends Model
{
/** @var OrderedProductDto[] $orderedProducts */
protected $orderedProducts;
/** @var integer $orderTaxAmount */
protected $orderTaxAmount;
/** @var integer $orderTotalAmount */
protected $orderTotalAmount;
public function rules()
{
//my validation rules go here
}
}
class OrderedProductDto extends Model
{
/** @var integer $quantity */
protected $quantity;
/** @var integer $orderedProductName */
protected $orderedProductName ;
public function rules()
{
//my validation rules go here
}
}
Код: Выделить всё
class ExternalOrderHydrator
{
public static function getOrderDtoFromOrder(Order $order)
{
/** do stuff to get an $array from $order which looks like
* ['orderTaxAmount' => 5, 'orderTotalAmount' => 100,
* 'orderedProducts' => [
* ['quantity' => 5, 'orderedProductName' => 'Product 1'],
* ],]
* and then do:
*/
$orderDto = new OrderDto();
if (!($orderDto->load($array) and $orderDto->validate())) {
throw new Exception('Something is wrong with provided data.');
}
return $orderDto;
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... ebones-php
Мобильная версия