2017-04-11 30 views
1

我正在使用Laravel版本5.4。我有一個表叫用戶和每個用戶有以下欄目:Laravel創建用戶語句不存儲特定列

Schema::create('users', function (Blueprint $table) { 

      $defaultValue = 0; 

      $table->increments('id'); 
      $table->string('name'); 
      $table->string('email')->unique(); 
      $table->string('facebook_id')->unique(); 
      $table->string('avatar'); 
      $table->integer('newsletter')->default($defaultValue); // <- 
      $table->bigInteger('category_1')->default($defaultValue); // <- 
      $table->bigInteger('category_2')->default($defaultValue); // <- 
      $table->bigInteger('category_3')->default($defaultValue); // <- 
      $table->timestamp('unlocked_tip_of_category_1_at')->nullable(); 
      $table->timestamp('unlocked_tip_of_category_2_at')->nullable(); 
      $table->timestamp('unlocked_tip_of_category_3_at')->nullable(); 
      $table->rememberToken(); 
      $table->timestamps(); 
     }); 

的問題是,當我使用的函數來創建一個用戶category_1category_2category_3不採取新的值是1。

從Facebook正在驗證後我用下面來存儲用戶的信息:

return User::create([ 
      'name' => $facebookUser->name, 
      'email' => $facebookUser->email, 
      'facebook_id' => $facebookUser->id, 
      'avatar' => $facebookUser->avatar, 
      'newsletter' => 0, 
      'category_1' => 1, 
      'category_2' => 1, 
      'category_3' => 1, 
     ]); 

例如name改變Facebook的用戶名。此外,我試圖改變

'name' => $facebookUser->name,

'name' => $facebookUser->name . " HEY",

在其結束successfuly存儲的名稱和+ 「HEY」。 (只是爲了確保這個運行)。

類別是bigInteger這意味着bigint(20)類型。我在想,我將它設置爲0的默認值發生了什麼。

任何想法?如果您需要更多信息,請告訴我。

  • 從什麼,我試圖完成解決這個最好的辦法是改變$defaultvalue1,但我不明白爲什麼這是行不通的。
+3

這些分類是否可以填寫?你的模型在哪裏? – apokryfos

+0

該死的,我完全忘了它。如果你願意,可以將它作爲答案發布 –

回答

0

如果您使用的是默認laravel腳手架,那麼你需要確保你根據你需要有可填充的所有列更新默認App\User型號:

class User extends Model { 

    protected $fillable = [ 
    'name', 'email', 'password','facebook_id','avatar','newsletter', 
     'category_1', 'category_2', 'category_3' 
    ]; 
    ... 
    } 

同樣適用,如果你正在創建你自己的模型。