user1597438
user1597438

Reputation: 2231

Yii 2.0 - Input values saved as null in database

In my practice app, I have a table called 'music' with 3 columns - id, title and artist. Whenever I try to insert the input values from the form to the database, a new record is added but only id has a value, title and artist are both null. Below is my model:

<?php namespace app\models;

/**
* This is the model class for table "music".
*
* @property integer $id
* @property string $title
* @property string $artist
*/
class MusicEntry extends \yii\db\ActiveRecord {
public $title;
public $artist;
public $id;

public static function tableName() {
    return 'music';
}

public function rules() {
    return [
            [['title', 'artist'], 'required'],
            [['id'], 'safe'],
    ];
}
} ?>

While my controller action looks like so:

public function actionMusicEntry() {
    $model = new MusicEntry ();

    if (isset ( $_POST ['MusicEntry'] )) {
        $model->load($_POST);
        if ($model->save()) {
            Yii::$app->session->setFlash ( 'success', 'Model has been saved' );
            $this->redirect ( [ 
                    'music-entry',
                    'id' => $model->id
            ] );
        } 
    }

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

I've tried getting the value of artist and title after loading the model using $_POST and it has the values I inputted in the form. Given this, why is the input values saved as null in the database?

Upvotes: 1

Views: 967

Answers (1)

user1597438
user1597438

Reputation: 2231

After further tweaking, I found the cause of the problem in the model. I had to remove the declaration for $artist and $title. I'm still not sure though why adding those variables caused such problem. Still looking into it.

Upvotes: 1

Related Questions