You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
моя задача сделать табличное редактирование параметров товаров. Параметры находятся в связанной таблице и с помощью функции заполняют свойство params объекта Product вот таким образом:
я в экшен "edit-params" предаю массив таких объектов и связкой TabularInput и MultipleInput получаю этот массив в таком виде скриншот. Пока всё хорошо.
Вопрос возникает при сохранении. Если не изменять параметров и сохраниться с таким набором параметров, который показан на скриншоте, то получаю такой вот массив POST, в котором не правильно формируется блок params
пары "ключ-значение" от второго товара передались первому товару,
второму товару ничего не передалось.
В ходе экспериментов выяснилось, что всегда передаётся массив params от последнего в списке товара первому в списке товару, а все остальные товары остаются без массива params. При этом id и name передаются правильно. Сохранение params в контроллере ещё не описано, но по массиву POST очевидно, что данные для сохранения сформированы не правильно
Вот код в контроллере:
public function actionEditParams()
{
$ids = Yii::$app->request->get('id');
$arr = explode(',', $ids);
$post = Yii::$app->request->post('Product');
$dataProvider = new ActiveDataProvider([
'query' => Product::find()->where(['id' => $arr])->indexBy('id'),
]);
$models = $dataProvider->getModels();
foreach ($models as $model){
$params = ProductsParams::find()->select([Params::tableName().'.name',Params::tableName().'.value'])
->leftJoin(Params::tableName(),ProductsParams::tableName().'.param_id = '.Params::tableName().'.id')
->where([ProductsParams::tableName().'.product_id' => $model->id])->asArray()->all();
if(!empty($params)){
foreach ($params as $index=>$param){
$model->params[$index]['key'] = $param['name'];
$model->params[$index]['value'] = $param['value'];
}
}
}
// if (Model::loadMultiple($models, Yii::$app->request->post()) && Model::validateMultiple($models)) {
// $count = 0;
// foreach ($models as $index => $model) {
// // populate and save records for each model
// if ($model->save()) {
// $count++;
// }
// }
// Yii::$app->session->setFlash('success', "Processed {$count} records successfully.");
// return $this->redirect(Yii::$app->request->referrer);
// }
return $this->render('edit-params', ['post' => $post, 'models' => $models]);
}
Соответственно я не понимаю куда копать: если массив params распознался виджетом MultipleInput и корректно отображается, значит модель и настройки 'columns' переданы верно. Это означает, что либо я не использую какие-то нужные в данном случае настройки виджетов либо в такой связке виджетов есть косяк. Помогите, пожалуйста, разобраться.
The text was updated successfully, but these errors were encountered:
моя задача сделать табличное редактирование параметров товаров. Параметры находятся в связанной таблице и с помощью функции заполняют свойство params объекта Product вот таким образом:
я в экшен "edit-params" предаю массив таких объектов и связкой TabularInput и MultipleInput получаю этот массив в таком виде скриншот. Пока всё хорошо.
Вопрос возникает при сохранении. Если не изменять параметров и сохраниться с таким набором параметров, который показан на скриншоте, то получаю такой вот массив POST, в котором не правильно формируется блок
params
а именно:
В ходе экспериментов выяснилось, что всегда передаётся массив
params
от последнего в списке товара первому в списке товару, а все остальные товары остаются без массиваparams
. При этомid
иname
передаются правильно. Сохранениеparams
в контроллере ещё не описано, но по массиву POST очевидно, что данные для сохранения сформированы не правильноВот код в контроллере:
вот код вьюхи
Соответственно я не понимаю куда копать: если массив
params
распознался виджетом MultipleInput и корректно отображается, значит модель и настройки 'columns' переданы верно. Это означает, что либо я не использую какие-то нужные в данном случае настройки виджетов либо в такой связке виджетов есть косяк. Помогите, пожалуйста, разобраться.The text was updated successfully, but these errors were encountered: