使用 Laravel 5.5 接收 [Illuminate\Database\Eloquent\MassAssignmentException] 电子邮件
Posted
技术标签:
【中文标题】使用 Laravel 5.5 接收 [Illuminate\\Database\\Eloquent\\MassAssignmentException] 电子邮件【英文标题】:Receiving [Illuminate\Database\Eloquent\MassAssignmentException] email using Laravel 5.5使用 Laravel 5.5 接收 [Illuminate\Database\Eloquent\MassAssignmentException] 电子邮件 【发布时间】:2018-05-09 18:34:47 【问题描述】:我正在关注一个试图学习如何使用 Laravel5.5 的教程。在执行了将protected $fillable = array('email', 'password', 'name');
添加到用户模型的步骤之后。
我假设设置哪些字段是可批量分配的字段?下一步是添加:
User::create(array(
'email' => 'your@email.com',
'password' => Hash::make('password'),
'name' => 'John Doe'
));
我的理解是将所述用户添加到数据库中。
当我运行php artisan migrate
时,我收到[Illuminate\Database\Eloquent\MassAssignmentException] email
,但我不知道为什么。我尝试添加Eloquent::unguard()
,并尝试使其全部可防护。
已从可填充数组中删除电子邮件。完全摆脱了电子邮件。
每次我运行 php artisan migrate
时,错误都是一样的。
【问题讨论】:
您在哪里使用 User::create 的代码?你是用模型工厂播种的吗? 【参考方案1】:根据您的描述,它应该可以正常工作。
所以请确保:
您正在使用有效的用户模型(也许您有 2 个并且您只在其中一个中设置了可填充)? 您没有在迁移中插入其他数据。问题很可能是其他模型而不是用户模型。【讨论】:
我检查了用户模型,似乎有一个是空的,一个是我创建的。其他迁移正在插入数据,但不是email
字段。似乎我正在关注的教程可能基于 Laravel 4,所以我可能需要停下来找到一个基于 5.5 的教程。
关于可填充和 MassAssignment 的想法没有改变,所以肯定有其他错误
尝试通过迁移添加假用户时出现问题。以上是关于使用 Laravel 5.5 接收 [Illuminate\Database\Eloquent\MassAssignmentException] 电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
DB::statement();在 Laravel (5.5)
无法使用 laravel 5.5 建立 laravel 关系