Laravel 4 Illuminate \ Database \ Eloquent \ MassAssignmentException error

10,269

You need to use the $fillable property in your Activation class when you use Mass Assignment.

class Activation extends Eloquent {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'activations';

    protected $fillable = ['id', 'token'];
}
Share:
10,269
Admin
Author by

Admin

Updated on July 23, 2022

Comments

  • Admin
    Admin almost 2 years

    Hei, I already searched many answers out there but could not solve this problem.

    Here is the code for my migration

    <?php
    
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;
    
    class CreateActiveTable extends Migration {
    
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('activations', function($table)
            {
                $table->bigInteger('id')->primary();
                $table->tinyInteger('token');
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::drop('activations');
        }
    }
    

    For model (models/Activation.php)

    <?php
    
    class Activation extends Eloquent {
    
        /**
         * The database table used by the model.
         *
         * @var string
         */
        protected $table = 'activations';
        protected $guarded = array();
    }
    

    And i am calling Activation table like this.

    Activation::create(['id' => 2, 'token' => 1231]);
    

    Seriously i have no idea what's wrong here. And i am newbie at laravel 4. Hope somebody with teach me whats happening and how to solve it.