Yii2 marco: Pasar y combinación de valores de un formulario en Controller

votos
-1

Traté de combinar los valores de entrada de formulario a través de un controlador. Ya había llegado a una solución para la combinación en sí, mediante el uso de una función getSum (), lo que todavía no entiendo es cómo llamar a las variables del formulario y lo envía a la base de datos.

Mi tutor menciona la declaración de 'contexto de clase' pero todavía no consigue lo que quiere decir. ¿Qué es 'contexto de clase' quiere decir?

A continuación aquí es el código.

A. controlador

//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. Código Ver

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. Modelo

En la escena modelo, tengo la intención de combinar el valor de PED1, ped2, ped3 y almacenarlos en una columna llamada '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],
    ];
}
Publicado el 20/10/2018 a las 10:29
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
-1

Prueba esto

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;
}
Respondida el 22/10/2018 a las 05:36
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more