このエラーが発生しています:
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');
}
Mass Assignment Exception :の場合は、プロパティ$fillable
:
protected $fillable = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at'];
また、フィールド$table
には、モデルのテーブル名のみを含める必要があります。
protected $table = 'your_table_name';
これは、誤ってインポートしたクラスを使用した場合に発生する可能性があります。ユーザーモデルを使用している場合。
間違ったインポート
// mostly IDE suggestion
use Illuminate\Foundation\Auth\User;
正しいモデルのインポート
use App\User;
私はこれを経験しました。誰かを助けるかもしれない。
すべての列に入力可能:
protected $guarded = array();
モデルを追加します。
モデル(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' ];
}
上記のすべてが失敗した場合は、以下を試してください。
名前空間の後に続きます。
use Eloquent;
store
メソッドの先頭に次を追加します。
Eloquent::unguard();
好む:
public function store(Request $request)
{
Eloquent::unguard();
$inputs = $request->all();
$contacts = Contacts::Create($inputs);
return redirect()->route('contacts.index');
}
ただし、これは攻撃に対して脆弱になるため、お勧めしません。ただし、簡単な修正が必要な場合は、これが役立つ場合があります。
App\Http\Controllers\ContactsController.phpファイルではなく、app\Contacts.phpファイルに$ fillableまたは$ guardedを配置していることを確認してください。それは明らかなはずですが、見落とされる可能性があります。
インポートしたかどうかを確認します。そうでない場合は、これを使用します。
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\User;