2017-10-19 17 views
0

おそらく愚かな質問ですが、登録フォームに問題があります。データベースusersテーブルに保存する追加フ​​ィールドを1つ追加しましたが、この追加のテキストエリアの値は保存されません。登録フォームはLaravelのデータベースに追加フィールドを保存しません

ユーザー名、パスワードなどのその他の入力はすべて正しく保存されます。私は$データは、バイオ値を含んでいることがわかり、私はdd($data)を行うとこれがまた、テキストエリア

<div class="form-group"> 
     <label class="col-md-4 control-label">Bio</label> 
     <div class="col-md-6">         
      <textarea class="form-control" name="bio" id="bio" rows="5"></textarea> 
     </div> 
</div> 

そしてAuthController.phpストア機能

protected function create(array $data) 
{ 
    //dd($data); 
    return User::create([ 
     'name' => $data['name'], 
     'password' => bcrypt($data['password']), 
     'bio' => $data['bio'], 
    ]); 
} 

です。

カラムのバイオはデータベースにtextというタイプがありますので、切り捨てられません。

何が問題になりますか?

+1

ユーザーモデルでfillable配列にbioを追加しましたか? – pseudoanime

答えて

1

これはMass Assignmentです。あなたのUserモデルで

、あなたがpublic $fillable = [...];

として定義した配列を持つことになりますが、それは私があなたのモデルがでバイオを追加User::create([]);機能

+0

ああ、私はこれを本当に知らなかった。私はララヴェルではまったく新鮮です。なぜ私はすぐにそれらを追加することはできませんが、fillableでそれらを追加する必要がありますか? – Peter

+0

ああ、私はドキュメントから理解しています。それはセキュリティ上の理由のためです – Peter

+0

ええ。入力できる内容は制限されています。 – mbozwood

1

から作業できるようにするために、アレイに'bio'を追加する必要があります保護された塗りつぶし。 このような

protected $fillable = ['name','email','password','bio']; 
関連する問題