Yii2 Framework: передача и комбинирование значений из формы в Controller - PullRequest
0 голосов
/ 20 октября 2018

Я попытался объединить значения из формы ввода через контроллер.Я уже пришел с решением для самой комбинации, используя функцию getSum (), но я до сих пор не понимаю, как вызывать переменные из формы и отправлять их в базу данных.

Мой преподаватель упомянул объявлениеиз «класса контекста», но я все еще не понимаю, что он имеет в виду.Что такое «классовый контекст», он имеет в виду?

Ниже приведен код.

A.Контроллер

//Function for creating instance for the form
public function actionCreate()
{
    $model = new Nilai();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
       return $this->redirect(['view', 'id' => $model->id]);
    }

    return $this->render('create', [
        'model' => $model,
    ]);
}

//function I created for getting sum of value in the view
public function getSum()
{
  return $model->nped => $form->ped1 + $form->ped2 + $form->ped3;
}

B.Посмотреть код

echo Form::widget([
'model' => $model,
'form' => $form,
'columns' => 2,
'attributes' => [
'ped1' => [
  'type' => Form::INPUT_RADIO_LIST,
  'label' => 'Ini pertanyaan Pedagogik1',
  'items' => [1=>'1', 2=>'2', 3=>'3', 4=>'4', 5=>'5']
],
'ped2' => [
  'type' => Form::INPUT_RADIO_LIST,
  'label' => 'Ini pertanyaan Pedagogik2',
  'items' => [1=>'1', 2=>'2', 3=>'3', 4=>'4', 5=>'5']
],
'ped3' => [
  'type' => Form::INPUT_RADIO_LIST,
  'label' => 'Ini pertanyaan Pedagogik2',
  'items' => [1=>'1', 2=>'2', 3=>'3', 4=>'4', 5=>'5']
  ],
 ]
]);

C.Модель

В сцене модели я намерен объединить значения из ped1, ped2, ped3 и сохранить их в столбце с именем 'nped'

public function rules()
{
    return [
        [['nim', 'nidn', 'kd_makul', 'nped', 'nprof', 'nsos', 'nkep'], 'required'],
        [['nped', 'nprof', 'nsos', 'nkep'], 'number'],
        [['nim', 'nidn', 'kd_makul'], 'string', 'max' => 255],
    ];
}

1 Ответ

0 голосов
/ 22 октября 2018

Попробуйте

public function actionCreate()
{
    $model = new Nilai();

    if ($model->load(Yii::$app->request->post())) {
       $model->nped = $this->getSum($model);
       $model->save()
       return $this->redirect(['view', 'id' => $model->id]);
    }

    return $this->render('create', [
        'model' => $model,
    ]);
}

public function getSum($form)
{
  return $form->ped1 + $form->ped2 + $form->ped3;
}
...