web-dev-qa-db-ja.com

Laravel 5:Model.phpのMassAssignmentException

このエラーが発生しています:

Model.php行448のMassAssignmentException:_token

createメソッドを使用している場合。以下のコードを確認してください:

Contacts.php(モデル):

class Contacts extends Model
{
    protected $table = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at'];
}

ContactsController.php(コントローラー):

public function store(Request $request)
{        
    $inputs = $request->all();
    $contacts = Contacts::Create($inputs);
    return redirect()->route('contacts.index');
}
22
Sandeep

Mass Assignment Exception :の場合は、プロパティ$fillable

protected $fillable = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at'];

また、フィールド$tableには、モデルのテーブル名のみを含める必要があります。

protected $table = 'your_table_name';
86
Moppo

これは、誤ってインポートしたクラスを使用した場合に発生する可能性があります。ユーザーモデルを使用している場合。

間違ったインポート

// mostly IDE suggestion
use Illuminate\Foundation\Auth\User;

正しいモデルのインポート

use App\User;

私はこれを経験しました。誰かを助けるかもしれない。

4
shakee93

すべての列に入力可能:

protected $guarded = array();

モデルを追加します。

4
Ferhat KOÇER

モデル(Contact)に以下を追加するだけです。

protected $fillable = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at'];

例えば:

class Contacts extends Model { 
   protected $table = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at']; 
   protected $fillable = [ 'name', 'mobile', 'email', 'address', 'created_at', 'updated_at' ]; 
}
1

上記のすべてが失敗した場合は、以下を試してください。

名前空間の後に続きます。

use Eloquent;

storeメソッドの先頭に次を追加します。

Eloquent::unguard();

好む:

public function store(Request $request)
{        
   Eloquent::unguard();
   $inputs = $request->all();
   $contacts = Contacts::Create($inputs);
   return redirect()->route('contacts.index');
}

ただし、これは攻撃に対して脆弱になるため、お勧めしません。ただし、簡単な修正が必要な場合は、これが役立つ場合があります。

0
Joynal Abedin

App\Http\Controllers\ContactsController.phpファイルではなく、app\Contacts.phpファイルに$ fillableまたは$ guardedを配置していることを確認してください。それは明らかなはずですが、見落とされる可能性があります。

0
Keith Turkowski

インポートしたかどうかを確認します。そうでない場合は、これを使用します。

<?php 

 namespace App\Http\Controllers\Auth; 
 use App\Http\Controllers\Controller; 
 use App\User;
0
Rahul Hirve