данные yii2 в БД сохраняют их все нулевыми

Привет, ребята, у меня проблема, когда я отправляю данные формы в базу данных, все поля NULL сохраняются. Какие-либо предложения? мой контроллер

public function actionOffri()
   {
    $model = new Offri;

   if($model->load(Yii::$app->request->post())&& $model->validate() && $model->save())
       {
        Yii::$app->session->setFlash('success', 'Hai inserito i dati correttamente');
        return $this->render('offri', ['model' => $model]);
       }
}

моя модель Я только что добавил правила и переменные функции полей ex.

public $name;
public function rules()
    {
        return [['name'],'string'.....
                 ....
               ];
}
My Full Model

class Offri extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'viaggio';
    }

public $data_par;
public $ora_part;
public $data_arrivo;
public $ora_arrivo;
public $citta_part;
public $citta_arrivo;
public $wifi;
public $bagno;
public $ac_dc;
public $condizioni;
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['citta_part','citta_arrivo'], 'required'],
            [['citta_part','citta_arrivo'], 'string', 'max' => 255],
            [['posti_disponibili', 'conferma_utenze', 'accounts_id_account', 'posti_max', 'wifi', 'bagno', 'ac_dc'], 'integer'],
            [['prezzo'], 'number'],
            [['accounts_id_account'], 'required'],
            [['citta_part', 'via_part', 'citta_arrivo', 'via_arrivo', 'veicolo'], 'string', 'max' => 45],
            [['note'], 'string', 'max' => 255],
            [['accounts_id_account'], 'exist', 'skipOnError' => true, 'targetClass' => Accounts::className(), 'targetAttribute' => ['accounts_id_account' => 'id_account']],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id_viaggio' => Yii::t('app', 'Id Viaggio'),
            'citta_part' => Yii::t('app', 'Citta Part'),
            'via_part' => Yii::t('app', 'Via Part'),
            'ora_part' => Yii::t('app', 'Ora Part'),
            'data_part' => Yii::t('app', 'Data Part'),
            'posti_disponibili' => Yii::t('app', 'Posti Disponibili'),
            'conferma_utenze' => Yii::t('app', 'Conferma Utenze'),
            'prezzo' => Yii::t('app', 'Prezzo'),
            'note' => Yii::t('app', 'Note'),
            'accounts_id_account' => Yii::t('app', 'Accounts Id Account'),
            'citta_arrivo' => Yii::t('app', 'Citta Arrivo'),
            'data_arrivo' => Yii::t('app', 'Data Arrivo'),
            'ora_arrivo' => Yii::t('app', 'Ora Arrivo'),
            'via_arrivo' => Yii::t('app', 'Via Arrivo'),
            'veicolo' => Yii::t('app', 'Veicolo'),
            'posti_max' => Yii::t('app', 'Posti Max'),
            'wifi' => Yii::t('app', 'Wifi'),
            'bagno' => Yii::t('app', 'Bagno'),
            'ac_dc' => Yii::t('app', 'Ac Dc'),
        ];
    }


person Saba    schedule 11.08.2016    source источник
comment
покажите весь код модели Offri пожалуйста   -  person scaisEdge    schedule 11.08.2016
comment
Как насчет вашего файла просмотра? И имеет ли ваша таблица БД значение по умолчанию как NULL?   -  person Gytis TG    schedule 11.08.2016


Ответы (1)


Судя по вашим правилам, ярлыкам и участникам, это, вероятно, связано с тем, что вы используете виртуальный членов, где вы не должны. Обратите внимание, что использование виртуальных элементов перезапишет любое значение, введенное пользователем. Поскольку вы не присваиваете никакого значения вручную, Yii просто очищает все и оставляет их пустыми. Вы также, скорее всего, установили null в качестве значения по умолчанию в своих столбцах (если данные пусты), поэтому вы видите null в каждой строке.

Чтобы решить эту проблему, удалите эти строки из своей Модели:

public $data_par;
public $ora_part;
public $data_arrivo;
public $ora_arrivo;
public $citta_part;
public $citta_arrivo;
public $wifi;
public $bagno;
public $ac_dc;
public $condizioni;

Эти виртуальные атрибуты используются не так, как атрибуты БД, и я думаю, что в вашем случае они вам здесь не нужны.

person Gytis TG    schedule 11.08.2016
comment
Я все еще новичок в yii2, большое спасибо, я решил. - person Saba; 12.08.2016