我收到这个错误:
Model.php中的MassAssignmentException第448行:_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');
}
对于批量分配异常:您应该通过对属性$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');
}
但不建议这样做,因为这会使东西容易受到攻击。但如果你需要一个快速解决方案,这可能会有所帮助。
检查是否导入了模型。如果没有,请使用此。
<?php
namespace App'Http'Controllers'Auth;
use App'Http'Controllers'Controller;
use App'User;
请确保将$fillable或$guard放在app''Contacts.php文件中,而不是app''Http''Controllers''ContactsController.php文件中。这应该是显而易见的,但也可以忽略。