buenas, tengo el siguiente problema con guardar el los datos que me envia la vista que posee un dynamicform
este es el controlador
public function actionCreate()
{
$model = new Orden();
$modelsOrdenProducto = [new Ordenproducto()];
if ($model->load(Yii::$app->request->post()) && $model->save()) {
$modelsOrdenProducto = Dynamic::createMultiple(Ordenproducto::className());
Dynamic::loadMultiple($modelsOrdenProducto, Yii::$app->request->post());
// validate all models
$valid = $model->validate();
$valid = Dynamic::validateMultiple($modelsOrdenProducto) && $valid;
if ($valid) {
$transaction = \Yii::$app->db->beginTransaction();
try {
if ($flag = $model->save(false)) {
foreach ($modelsOrdenProducto as $modelOrdenproducto) {
$modelOrdenproducto->id_orden = $model->idorden;
if (! ($flag = $modelOrdenproducto->save(false))) {
$transaction->rollBack();
break;
}
}
}
if ($flag) {
$transaction->commit();
return $this->redirect(['view', 'id' => $model->id]);
}
} catch (Exception $e) {
$transaction->rollBack();
}
}
}
y esta es la clase dynamic
use Yii;
use yii\base\Model;
use yii\helpers\ArrayHelper;
class Dynamic extends Model
{
public static function createMultiple($modelClass, $multipleModels = [])
{
$model = new $modelClass;
$formName = $model->formName();
$post = Yii::$app->request->post($formName);
$models = [];
if (! empty($multipleModels)) {
$keys = array_keys(ArrayHelper::map($multipleModels, 'id', 'id'));
$multipleModels = array_combine($keys, $multipleModels);
}
if ($post && is_array($post)) {
foreach ($post as $i => $item) {
if (isset($item['id']) && !empty($item['id']) && isset($multipleModels[$item['id']])) {
$models[] = $multipleModels[$item['id']];
} else {
$models[] = new $modelClass;
}
}
}
unset($model, $formName, $post);
return $models;
}
}
lo que sucede es que a la hora de darle enviar, no me guarda y me devuelve a la seccion de crear una orden, agradeceria su ayuda muchas gracias